熊猫:CONCAT dataframes和
我有2个dataframes列SUMM价值,我需要Concat的它熊猫:CONCAT dataframes和
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
我试过
df = pd.merge(df1, df2, on='ac')
但它从第一个数据帧返回数据帧,而不是summ。 我该如何解决这个问题?
我认为你需要add
与参数fill_value=0
,但首先replace
,
到.
和转换为float
S:
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_csv
代替replace
和astype
使用参数decimal=','
。
它是union数据帧,但不是sum。我有两列所有列。 –
我觉得用''代替''',而不是''。所以需要先替换 – jezrael
这很奇怪。在实际数据中,df1有72列,df2有114列。但在结果DF我有184.你可以看到我的数据框,如果我把它发送给你的电子邮件? –
'df_out = df1 + df2' –
@cᴏʟᴅsᴘᴇᴇᴅ它返回我空数据框的数据帧 –
所有的列浮动或是他们的字符串?特别是3316,666 .... –