【问题标题】:How can I join two dataframes together如何将两个数据框连接在一起
【发布时间】:2018-04-24 08:09:14
【问题描述】:

我的第一个数据框有多个列,其中一个包含 ID 列,我的第二个数据框有多个列,其中一个包含一个否,所以我找到了两者之间的链接。但是,如何使用数字将这些链接在一起,以将数据框 2 中的邮政编码信息分配给数据框 1 中的正确做法。

任何帮助将不胜感激!!!

日期框架 1

ID  place  Items Cost
0      5     10  2001.00
1     12     2  20.98
2      2     4  100.80
3      7     7  199.60

数据框 2

ID   No     Dr      Postcode
0      1     Dr.K     BT94 7HX
1      5     Dr.H     BT7 4MC
2      3     Dr.Love  BT9 1HE
3      7     Dr.Kerr  BT72 4TX

我想在数据框 1 中创建一个新列“邮政编码”并将邮政编码分配给正确的实践

ID  Place Items Cost Postcode      
0      5         10  BT7 4MC
1      2          3  BT9 1HE
2      22         8  BT62 4TU
3      7          7  BT72 4TX

我该怎么做??

【问题讨论】:

  • Harry,您能否在您的问题中添加示例数据以及预期输出?
  • @ScottBoston 我已在我的问题中添加了更多详细信息,对此的任何帮助都会很棒

标签: python python-2.7 pandas dataframe jupyter-notebook


【解决方案1】:

IIUC,我认为您正在寻找的是合并中的“left_on”和“right_on”参数:

df1.merge(df2, left_on='Practice', right_on='Prac No')

输出:

   ID_x  Practice  Items    Cost  ID_y  Prac No       Dr  Postcode
0     0         5     10  2001.0     1        5     Dr.H   BT7 4MC
1     3         7      7   199.6     3        7  Dr.Kerr  BT72 4TX

或者另一种方式是使用set_indexmap

df1['Postcode'] = df1['Practice'].map(df2.set_index('Prac No')['Postcode'])
df1

输出:

   ID  Practice  Items     Cost  Postcode
0   0         5     10  2001.00   BT7 4MC
1   1        12      2    20.98       NaN
2   2         2      4   100.80       NaN
3   3         7      7   199.60  BT72 4TX

【讨论】:

    猜你喜欢
    • 2021-10-22
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2018-08-13
    • 2018-04-11
    • 2019-12-24
    相关资源
    最近更新 更多