2017-09-04 24 views
0

私は2つのデータフレームを持っていると私はそれをパンダ:、連結データフレームとSUMM値列の

DF1

ac    Hi-Tech Безопасность Hi-Tech Интернет Hi-Tech Компьютеры 
g0erl94ixwwzetju 0      3313    8 
g0f6b7yuyj9vctww 0      0     0 
g0ibu3bokld1ea9e 0      12,5    61  

DF2

ac    Hi-Tech Безопасность Hi-Tech Интернет Hi-Tech Интерфейс 
g0erl94ixwwzetju 0      3,666666667  0 
g0f6b7yuyj9vctww 0      0     0 
g0ibu3bokld1ea9e 0      8,5    0 

欲望の出力

ac    Hi-Tech Безопасность Hi-Tech Интернет Hi-Tech Интерфейс Hi-Tech Компьютеры 
g0erl94ixwwzetju 0      3316,666666667 0     8 
g0f6b7yuyj9vctww 0      0     0     0 
g0ibu3bokld1ea9e 0      21    0     61    
をCONCATする必要があります

私は試しました

df = pd.merge(df1, df2, on='ac') 

しかし、それは最初のデータフレームではなく、SUMMからの値でデータフレームを返します。 どうすれば修正できますか?

+1

'df_out = df1 + df2' –

+0

@cᴏʟᴅsᴘᴇᴇᴅ空のセルでデータフレームを返します –

+0

すべての列が浮動しているか文字列ですか?特に3316,666 .... –

答えて

1

私はあなたがパラメータfill_value=0addが必要だと思うが、float sの最初の.replace,キャスト:

df11 = df1.set_index('ac').replace(',','.', regex=True).astype(float) 
df22 = df2.set_index('ac').replace(',','.', regex=True).astype(float) 
df = df11.add(df22, fill_value=0).fillna(0).reset_index() 
print (df) 
       ac Hi-Tech Hi-Tech Безопасность Hi-Tech Интернет \ 
0 g0erl94ixwwzetju  0.0     0.0  3316.666667 
1 g0f6b7yuyj9vctww  0.0     0.0   0.000000 
2 g0ibu3bokld1ea9e  0.0     0.0   21.000000 

    Hi-Tech Компьютеры Интерфейс 
0     8.0  0.0 
1     0.0  0.0 
2    61.0  0.0 

別の解決策ではなくread_csvreplaceastype用パラメータdecimal=','です。

+0

それは総和ではありませんが、和集合データフレームです。私はすべての列を2回持っています。 –

+0

浮動小数点数の代わりに '、'には問題があると思います。だから最初に交換する必要があります – jezrael

+0

それは変です。実際のデータでは、df1に72列、df2に114列あります。しかし結果dfには184があります。電子メールで送信すれば、私のデータフレームを見ることができますか? –

関連する問題