Python 3.x 如何正确理解熊猫数据帧合并(如何,左开,右开)?
一段时间以来,我一直在尝试将我的头绕在Python 3.x 如何正确理解熊猫数据帧合并(如何,左开,右开)?,python-3.x,pandas,dataframe,merge,Python 3.x,Pandas,Dataframe,Merge,一段时间以来,我一直在尝试将我的头绕在merge上: 我有以下数据帧: staff_df = pd.DataFrame([{'Name': 'Kelly', 'Role': 'Director of HR', 'Location': 'State Street'}, {'Name': 'Sally', 'Role': 'Course liasion', 'Location': 'Washington Avenue'},
merge
上:
我有以下数据帧:
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')
每种方法产生的输出略有不同。有人能指导我如何正确理解每个输出是如何构造的吗
具体来说,
- 为什么角色栏和学校栏总是在同一地点之间李>
- 姓名栏旁边的角色栏是什么时候?学校是什么时候 “名称”列旁边的列
left\u index
和right\u on
谢谢。我建议您仔细阅读文档,以正确理解合并操作。它有很好的例子记录。想不出更简单的解释了 从文件 左上:左数据框中的列用作键。可以是 列名或数组,其长度等于 数据帧 右键打开:右数据框中的列用作键。可以 列名或数组的长度等于 数据帧 为什么角色栏和学校栏总是在位置之间? 合并后,将对列进行排序。要检查是否更改
pd.merge
第二个df
参数中以L
之前的字母开头的列名
pd.merge(student_df, staff_df, how='left', left_on='Name', right_on='Name')
您可以使用上的与上的两个参数来代替上的左键与右键,这两个参数将匹配来自两个数据帧的键。i、 e
pd.merge(student_df, staff_df, how='left', on='Name')
角色栏何时位于姓名栏旁边,学校栏何时位于姓名栏旁边?
这取决于您给予df的优先级。如果首先指定
staff\u df
,则列将在staff\u df
之后按列连接。因此,Role
将位于Name
列旁边。同样,如果您指定student\u df
student将位于名称列旁边 你读了吗?@Zero谢谢你的参考文件。我浏览了一遍,没有找到合适的例子来帮助我回答问题。如果您能就如何回答我的问题给我一些指导,我将不胜感激。谢谢
Location_x Name School Bole Location_y
0 1024 Billiard Avenue James Business Grader Washington Avenue
1 Fraternity House #22 Mike Law NaN NaN
2 512 Wilson Crescent Sally Engineering Course liasion Washington Avenue
pd.merge(student_df, staff_df, how='left', on='Name')