【问题标题】:Python pandas, build a dataframe from 2 dataframes with these properties [duplicate]Python pandas,从具有这些属性的2个数据帧构建一个数据帧[重复]
【发布时间】:2018-03-04 06:13:58
【问题描述】:

我需要解决这个问题。

我需要从两个数据帧构建一个完整的数据帧,但如果需要,只包含来自第二个数据帧的某些信息。

示例:

DF1:

    MATERIAL_N° Description DATE DUE
0   123123300   Lightbulb X 01/05/2018
1   220466      Lightbulb Y 04/04/2018
2   220000      Lightbulb Z 07/07/2018
3   1241241     Lightbulb A 02/01/2019
4   7775447     Lightbulb B 02/01/2019

DF2:

    BG GROUP    MATERIAL N° TRANSIT TIME
0   9001        123123300   45D
1   9002        220466      30D
2   9004        220000      30D
3   9003        44124       20D
4   9000        2512222     15D
5   9002        1241241     40D

预期结果 DF3:

    MATERIAL N° Description     DATE DUE    BG GROUP TRANSIT TIME
0   123123300   Lightbulb X     01/05/2018  9001.0  45D
1   220466      Lightbulb Y     04/04/2018  9002.0  30D
2   220000      Lightbulb Z     07/07/2018  9004.0  30D
3   1241241     Lightbulb A     02/01/2019  9002.0  40D
4   7775447     Lightbulb B     02/01/2019  NaN     NaN

我希望这个例子足够清楚,我需要制作一个大数据框 (DF3),在伴随列中添加信息,仅在有来自 DF2 的信息的情况下,否则将该位置留空。

谢谢! 杰伦

【问题讨论】:

标签: python pandas dataframe string-matching


【解决方案1】:

你需要与左参数合并

df1.merge(df2, how = 'left')

    MATERIAL N° Description DATE DUE    BG GROUP    TRANSIT TIME
0   123123300   Lightbulb X 01/05/2018  9001.0      45D
1   220466      Lightbulb Y 04/04/2018  9002.0      30D
2   220000      Lightbulb Z 07/07/2018  9004.0      30D
3   1241241     Lightbulb A 02/01/2019  9002.0      40D
4   7775447     Lightbulb B 02/01/2019  NaN         NaN

【讨论】:

  • 我之前使用过 merge 和 concat 方法,这基本上是我要求的,但我错过了一个问题,即 DF2 是否有超过这 2 列,我需要在一定的顺序。例如:DF2.columns 是 (BG GROUP, MATERIAL N°, ETA, ETD, TRANSIT TIME, FLAGS) 我需要获取 DF3.columns = (MATERIAL N°, DESCRIPTION, DATE DUE, BG_GROUP, TRANSIT_TIME)
  • 如果 df2 在最终数据框中有更多您不需要的列,您可以使用 df1.merge(df2[['BG GROUP', 'MATERIAL N', ' TRANSIT TIME']], how = 'left)
  • 感谢 Vaishali!我猜熊猫总是有用的,我需要坐下来看看文档......
  • 祝你一切顺利:)
猜你喜欢
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 2023-03-24
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多