如何合并多个数据帧并将公共值求和到列中

问题描述 投票:0回答:2

我有很多数据框,例如:

df1                  df2                  and so on...
gene | counts        gene | counts   
KRAS    136          KRAS   96
DNAH5    3           DNAH5   4
TP53    105          TP53   20

我想合并它们并对“计数”列进行求和,这样我最终只得到一个数据框

merged_df
gene | counts
KRAS    232       
DNAH5    7    
TP53    125 

我尝试使用 pd.merge 但它一次只接受 2 个数据帧,我有 14 个数据帧。我将 pd.concat 用于多个数据帧,但之后无法对它们求和。

python pandas dataframe sum
2个回答
0
投票

你可以试试这个:

dataframes = [df1, df2, df3] # Add your dataframes here
concatenated_df = pd.concat(dataframes)
result_df = concatenated_df .groupby('gene', as_index=False).sum()

0
投票

您最终可能想使用

df.groupby()
功能。

具体操作方法如下:

首先你

df = df.concat([df1, df2, df3...])
你的数据框,所以你最终会得到一个大数据框。 之后你需要使用
df = df.group_by('gene').sum().reset_index()
基本上,您根据唯一的“基因”列对所有行进行分组,然后总结每个“基因”的所有“计数”值。 重置索引只是将分组的“基因”值转换回常规列。

您可以尝试逐一运行每个命令以了解发生了什么。

© www.soinside.com 2019 - 2024. All rights reserved.