我一直在试图总结我的头周围merge
了一会儿:如何正确理解熊猫数据框合并(how,left_on,right_on)?
我有以下dataframes:
staff_df = pd.DataFrame([{'Name': 'Kelly', 'Role': 'Director of HR', 'Location': 'State Street'},
{'Name': 'Sally', 'Role': 'Course liasion', 'Location': 'Washington Avenue'},
{'Name': 'James', 'Role': 'Grader', 'Location': 'Washington Avenue'}])
student_df = pd.DataFrame([{'Name': 'James', 'School': 'Business', 'Location': '1024 Billiard Avenue'},
{'Name': 'Mike', 'School': 'Law', 'Location': 'Fraternity House #22'},
{'Name': 'Sally', 'School': 'Engineering', 'Location': '512 Wilson Crescent'}])
我知道我可以以多种方式将它们合并不止一个:
pd.merge(staff_df, student_df, how='left', left_on='Name', right_on='Name')
pd.merge(student_df, staff_df, how='left', left_on='Name', right_on='Name')
pd.merge(staff_df, student_df, how='right', left_on='Name', right_on='Name')
pd.merge(student_df, staff_df, how='right', left_on='Name', right_on='Name')
每个产生一个稍微不同的输出。有人能以正确的方式引导我理解每个输出是如何构建的吗?
具体来说,
- 为什么总是location_y之间的角色和学校列?
- 什么时候名称列旁边的角色列和名称列旁边的学校 列是什么时候?
我不想问在同一个合并语句中使用left_index
和right_on
。
谢谢。
你有没有读过https://pandas.pydata.org/pandas-docs/stable/merging.html? – Zero
@Zero感谢您参考文档。我浏览了它,我无法找到正确的例子来帮助我解决我的问题。如果你可以给我一些关于如何处理我的问题的指导,那将是非常感谢。谢谢。 –