python - 将给定数据框的一列的选定值分配给Python中的另一个数据框
问题描述
我想将数据框的选定列值分配给另一个数据框。
data = [['Math',87],['Geography',93],['Physics',72],['Geometry',75],['Astronomy',81],['English',94],['History',84]]
df = pd.DataFrame(data,columns=['Subjects','Grade'])
df
Subjects Grade
Math 87
Geography 93
Physics 72
Geometry 75
Astronomy 81
English 94
History 84
我有另一个数据框:
data2 = [['Astronomy'],['Geography'],['Geometry'],['History']]
df2 = pd.DataFrame(data2,columns=['Subjects_selected'])
df2
Subjects_selected
Astronomy
Geography
Geometry
History
如何自动将 Grade 列值作为新列元素分配给 df2?我希望得到:
Subjects_selected Retrieved_Values
Astronomy 81
Geography 93
Geometry 75
History 84
解决方案
使用Series.map
by Series
created byDataFrame.set_index
并选择 column Grade
:
df2['Retrieved_Values'] = df2['Subjects_selected'].map(df.set_index('Subjects')['Grade'])
print (df2)
Subjects_selected Retrieved_Values
0 Astronomy 81
1 Geography 93
2 Geometry 75
3 History 84
另一个使用DataFrame.merge
和重命名列的解决方案:
d = {'Subjects':'Subjects_selected','Grade':'Retrieved_Values'}
df2 = df2.merge(df.rename(columns=d), how='left')
print (df2)
Subjects_selected Retrieved_Values
0 Astronomy 81
1 Geography 93
2 Geometry 75
3 History 84
推荐阅读
- c# - 我需要帮助找到适用于 Android 的 Swipe Gesture Swipe,以及我的滑动和点击冲突的修复
- pdfsharp - 在 MigraDoc 表格单元格中将段落右对齐
- javascript - 如何使用js让a-tag消失?
- docker - GOMAXPROCS 如何在不同平台和容器内部确定?
- rabbitmq - 一个 SCDF 源,2 个处理器,但每个项目只有 1 个进程
- django - 姜戈。楷模。在它的方法中创建同一个类的另一个实例
- javascript - Puppeteer 错误找不到选择器的节点
- c - 使用位运算符时出现分段错误
- html - 为什么这些包含图像的无序列表项不显示在水平行中?
- jquery - 附加到链接并使用 jquery 添加 css 类