2016-08-15 4 views
1

Так что я DataFrame, df1, который имеет 3 колонки, A, B и C, как например:Панды Добавить Значения Column к различным Dataframe

      A   B   C 
Arizona     0 2.800000 5.600000 
California     0 18.300000 36.600000 
Colorado     0 2.666667 5.333333 
Connecticut    0 0.933333 1.866667 
Delaware     0 0.100000 0.200000 
Florida     0 0.833333 1.666667 
Georgia     0 0.000000 0.000000 
Hawaii      0 1.000000 2.000000 
Illinois     0 3.366667 6.733333 
Indiana     0 0.000000 0.000000 
Iowa      0 0.000000 0.000000 

Я тогда еще dataframe, df2, что имеет только один столбец, D:

    D 
Arizona   13 
California   18 
Colorado   5 
Connecticut  15 
Delaware   7 
Florida    5 
Georgia   13 
Hawaii    3 
Illinois   21 
Indiana    2 
Iowa    4 

То, что я хотел бы сделать, это добавить значения столбца D для всех столбцов в df1. Добавляя, я имею в виду значение [Аризона, А] и добавляю его к значению [Аризона, D], не добавляя столбец D в качестве нового столбца. До сих пор я попытался с помощью

df1 + df2 #returned all NaN 
df1 + df2['D'] #Also returned all NaN 
df1['A'] + df2['D'] #Returned a new dataframe with each as a separate column 

теперь я не совсем уверен, куда идти отсюда, так что я хотел бы несколько советов о том, как решить эту проблему. Не похоже, что это должно быть сложно, и я, вероятно, не вижу ничего очевидного. Любая помощь будет оценена по достоинству.

ответ

2

вы можете использовать add() метод:

In [22]: df1.add(df2.D, axis='index') 
Out[22]: 
       A   B   C 
Arizona  13.0 15.800000 18.600000 
California 18.0 36.300000 54.600000 
Colorado  5.0 7.666667 10.333333 
Connecticut 15.0 15.933333 16.866667 
Delaware  7.0 7.100000 7.200000 
Florida  5.0 5.833333 6.666667 
Georgia  13.0 13.000000 13.000000 
Hawaii  3.0 4.000000 5.000000 
Illinois  21.0 24.366667 27.733333 
Indiana  2.0 2.000000 2.000000 
Iowa   4.0 4.000000 4.000000 
+0

Ваш ответ был очень быстрым. Как вы так быстро сгенерировали dataframe в ipython? –

+2

@NehalJWani, [read_clipboard] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_clipboard.html) – MaxU

+0

Это потрясающе! Благодаря! –

0

вы пытаетесь сделать что-то вроде этого?

df1 = DataFrame({'A':{'a':1, 'b':2}, 'B':{'a':10, 'b':20}}) 
df2 = DataFrame({'C':{'a':2, 'b':2}}) 
df1['A+C'] = df1['A'] + df2['C'] 
df1['B+C'] = df1['B'] + df2['C'] 

print (df1) 
    A B A+C B+C 
a 1 10 3 12 
b 2 20 4 22