2016-08-15 97 views
1

所以我有一個數據幀,DF1,具有3列,A,B和C作爲這樣:熊貓添加列的值對不同數據幀

      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 

然後我有另一個數據幀,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中的所有列。通過添加,我的意思是將[Arizona,A]的值加上[Arizona,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

您的回答非常快。你如何快速生成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