Python Pandas:concat数据帧和列中的summ值

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

我有2个数据帧,需要对其进行压缩

df1

df2

期望输出

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