我有很多数据框,例如:
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 用于多个数据帧,但之后无法对它们求和。
你可以试试这个:
dataframes = [df1, df2, df3] # Add your dataframes here
concatenated_df = pd.concat(dataframes)
result_df = concatenated_df .groupby('gene', as_index=False).sum()
您最终可能想使用
df.groupby()
功能。
具体操作方法如下:
首先你
df = df.concat([df1, df2, df3...])
你的数据框,所以你最终会得到一个大数据框。
之后你需要使用df = df.group_by('gene').sum().reset_index()
基本上,您根据唯一的“基因”列对所有行进行分组,然后总结每个“基因”的所有“计数”值。
重置索引只是将分组的“基因”值转换回常规列。
您可以尝试逐一运行每个命令以了解发生了什么。