python - Pandas 合并结果输出下一行
问题描述
假设我有两个数据框
df_1
city state salary
New York NY 85000
Chicago IL 65000
Miami FL 75000
Dallas TX 78000
Seattle WA 96000
df_2
city state taxes
New York NY 15000
Chicago IL 5000
Miami FL 6500
接下来,我加入两个数据框
joined_df = df_1.merge(df_2, how='inner', left_on=['city'], right_on = ['city'])
结果:
joined_df
city state salary city state taxes
New York NY 85000 New York NY 15000
Chicago IL 65000 Chicago IL 5000
Miami FL 75000 Miami FL 6500
无论如何我可以将两个数据框堆叠在一起加入城市而不是水平延伸线,如下所示:
要求:
joined_df
city state salary taxes
New York NY 85000
New York NY 15000
Chicago IL 65000
Chicago IL 5000
Miami FL 75000
Miami FL 6500
我怎么能在熊猫中做到这一点!
解决方案
在这种情况下,如果我们需要同时考虑和 ,我们可能需要先使用merge
来限制相关行。concat
city
state
rel_df_1 = df_1.merge(df_2)[df_1.columns]
rel_df_2 = df_2.merge(df_1)[df_2.columns]
df = pd.concat([rel_df_1, rel_df_2]).sort_values(['city', 'state'])
推荐阅读
- powershell - 从 Intune 静默部署和运行 Offscrub VBS 脚本
- cakephp - 将参数从 cakePHP 传递到应用程序外部的文件
- python - python opencv cv2.threshold(), TypeError: Expected cv::UMat for argument 'mat'
- azure - 在 Azure Functions 中管理多租户应用程序的连接 - 防止错误:超出主机阈值
- math - 如何将比特流转换为 base20 数字?
- amazon-web-services - Amazon Managed Blockchain 的 QLDB 如何处理不同组织的权限?
- python-3.x - 为什么这个函数不能被调用
- cordova - 你能得到你的设备和科尔多瓦蓝牙设备之间的距离吗
- konvajs - 在 KonvaJS 中应用缩放(比例)进行文本编辑
- wcf - WCF 服务客户端生成名称空间问题