【问题标题】:Update columns in one data frame with values from another data frame用另一个数据框中的值更新一个数据框中的列
【发布时间】:2021-06-12 07:54:51
【问题描述】:

我正在尝试使用 ref_df1 中的列和数据更新 df2,以便我的输出数据框包含所有列 ['Code', 'Place', 'Product', 'Name', 'Value'],并使用 Code 列值作为键从参考数据框中提取数据。我不确定如何到达输出。

import pandas as pd


data1 = {
    'Code': [1, 2, 3, 4, 5, 6],
    'Name': ['Company1', 'Company2', 'Company3', 'Company4', 'Company5', 'Company6'],
    'Value': [200, 300, 400, 500, 600, 700],
}

ref_df1 = pd.DataFrame(data1, columns=['Code', 'Name', 'Value'])
    
data2 = {
    'Code': [1, 2, 1, 3, 4, 1, 6],
    'Place': ['A', 'B', 'E', 'G', 'I', 'K', 'L'],
    'Product': ['P11', 'P22', 'P12', 'P33', 'P44', 'P13', 'P61'],
}

df2 = pd.DataFrame(data2, columns=['Code', 'Place', 'Product'])

输出:

【问题讨论】:

  • 查找pd.merge

标签: python pandas dataframe


【解决方案1】:

你可以merge这两个数据框。

df2.merge(ref_df1)
#output:
   Code Place Product      Name  Value
0     1     A     P11  Company1    200
1     1     E     P12  Company1    200
2     1     K     P13  Company1    200
3     2     B     P22  Company2    300
4     3     G     P33  Company3    400
5     4     I     P44  Company4    500
6     6     L     P61  Company6    700

【讨论】:

  • 在实际数据集中,此操作似乎删除了一些行并重复其他行。你知道为什么会发生这种情况的一些常见原因吗?
  • 如果它正在删除行,这意味着ref_df1 对您的df2 中的所有Code 没有价值,如果您看到重复的行,则表示您的实际数据集本身有重复的行。
  • 我认为这应该是基于预期输出的左合并。 df2.merge(ref_df1, how='left')
猜你喜欢
  • 2019-11-23
  • 1970-01-01
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
  • 2019-07-26
  • 2021-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多