我正在处理多个数据帧,每个数据帧都有一个共同的列,即 post_id。每个 df 的示例如下:
post_id post_likes
0 1
1 2
2 3
3 4
4 5
5 6
因此,每个 df 都有一列,其中包含 post_id,但在每个后续 df 中还有另一列,例如喜欢、总数、名称等。有什么方法可以根据 post_id 将所有这些 dfs 分组为一个,因为我的最终目标是将这个数据框写入 csv。
最佳答案
假设我有一长串数据帧,所有数据帧都有一个标记为 post_id
的列和另一列。
lodf = [df1, df2, df3, df4, df5]
您可以使用pd.concat
将它们全部放在一起。您只需先设置索引
df = pd.concat([d.set_index('post_id') for d in lodf], axis=1).reset_index()
演示
df1 = pd.DataFrame(dict(post_id=[1, 2, 3], col1=[1, 2, 3]))
df2 = pd.DataFrame(dict(post_id=[1, 2, 3], col2=[1, 2, 3]))
df3 = pd.DataFrame(dict(post_id=[1, 2, 3], col3=[1, 2, 3]))
df4 = pd.DataFrame(dict(post_id=[1, 2, 3], col4=[1, 2, 3]))
df5 = pd.DataFrame(dict(post_id=[1, 2, 3], col5=[1, 2, 3]))
lodf = [df1, df2, df3, df4, df5]
df = pd.concat([d.set_index('post_id') for d in lodf], axis=1).reset_index()
df
post_id col1 col2 col3 col4 col5
0 1 1 1 1 1 1
1 2 2 2 2 2 2
2 3 3 3 3 3 3
关于python - Pandas:使用一个公共(public)列合并多个 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43403608/