You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中高效实现类似SQL的表自联合并(交换列)

高效实现Pandas中类似SQL自联合并交换列的操作

针对你需要实现的类似SQL UNION 交换列后合并的需求,有更简洁的方式,完全不需要复杂的索引重排操作:

方法1:直接复制原表并交换列

# 复制原表,仅交换user1和user2列
df_swapped = df.copy()
df_swapped[['user1', 'user2']] = df_swapped[['user2', 'user1']]

# 合并原表与交换后的表
df_combined = pd.concat([df, df_swapped], ignore_index=True)

方法2:一行代码生成交换后的表(更简洁)

如果不需要纠结其他列的顺序,直接用rename快速调换列名,再合并:

df_combined = pd.concat([df, df.rename(columns={'user1':'user2', 'user2':'user1'})], ignore_index=True)

后续统计好友数量

合并完成后,就能像SQL里那样按user1分组统计好友数:

friend_count = df_combined.groupby('user1')['user2'].nunique().reset_index(name='friend_count')

为什么你之前的方法繁琐?

你之前用reindex再手动交换列的方式多了不必要的步骤——直接复制原表并交换指定列,或者用rename快速调换列名,就能精准达到SQL中UNION的效果,同时避免冗余操作。

内容的提问来源于stack exchange,提问作者Oskar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 18:55:21