Python Pandas:concat数据帧和列中的summ值
我有2个数据帧,需要对其进行压缩 df1 df2 期望输出Python Pandas:concat数据帧和列中的summ值,python,pandas,Python,Pandas,我有2个数据帧,需要对其进行压缩 df1 df2 期望输出 ac Hi-Tech Безопасность Hi-Tech Интернет Hi-Tech Интерфейс Hi-Tech Компьютеры g0erl94ixwwzetju 0 3316,666666667 0 8 g0f6b7yuyj9vctww 0 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')
但它返回的dataframe值来自第一个dataframe,而不是summ。
如何解决这个问题?我想您需要使用参数fill\u value=0,但首先替换为。并将其转换为浮动:
另一种解决方案是使用参数decimal=',in代替replace和astype。df_out=df1+df2@cᴏʟᴅsᴘᴇᴇᴅ 它返回空单元格的数据帧所有的列都是浮动的还是字符串?尤其是3316666…@cᴏʟᴅsᴘᴇᴇᴅ 所有数据帧都是浮点或整数联合数据帧,但不是总和。我把所有的专栏都写了两遍。我认为这是个问题。花车。所以我觉得很奇怪。在实际数据中,df1中有72列,df2中有114列。但结果是我有184个。如果我给你发邮件,你能看到我的数据帧吗?这取决于你。但我认为缺少2列-可能是ac,因为它是indexSo,在reset_index之后,我认为输出列的len在df1中是72+114-1ac,df2中的ac在输出中创建一个ac
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')
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