从多个数据帧获取int单元格的总和

2024-10-01 02:32:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有四个具有相同列的数据帧和一个列“Area”,这在4个df中是一致的

AREA     NUM1   NUM2
london   10     10

AREA     NUM1   NUM2
london   5      5

我想在新数据帧中看到的输出是

Area     NUM1   NUM2
london   15     15

我一直在尝试做简单的事情

dfTotal = df1 + df2

但它给我的是伦敦


Tags: 数据dfarea事情df1df2londonnum2
2条回答

按列AREA创建索引,以便在与^{}求和之前对齐:

dfTotal = ((df1.set_index('AREA').select_dtypes(np.number) +
            df2.set_index('AREA').select_dtypes(np.number))
               .reset_index())

print (dfTotal)
     AREA  NUM1  NUM2
0  london    15    15

一般解决方案:

dfs = [df1, df2]
L = [x.set_index('AREA').select_dtypes(np.number) for x in dfs]

dfTotal = pd.concat(L).sum(level=0).reset_index()
print (dfTotal)
     AREA  NUM1  NUM2
0  london    15    15

一个选项是连接4个数据帧,然后运行groupby/pivot\表来获得结果。这样做的好处是,当您添加更多的数据帧时(如果需要的话),代码不会有太大的变化

相关问题 更多 >