【问题标题】:Pandas - How to combine duplicate items into one with several columnsPandas - 如何将重复的项目合并为一个具有多列的项目
【发布时间】:2021-05-18 14:26:40
【问题描述】:

我有以下数据框

可以看到,ItemNo 1重复了3次,每一列都有对应的值。

我正在寻找一种方法来检查所有列,如果它们匹配,则将价格、销售额和库存作为一个条目,而不是三个。

任何帮助将不胜感激。

【问题讨论】:

标签: python pandas pivot multiple-columns data-preprocessing


【解决方案1】:

只需删除所有 NaN 实例并重新定义列名

df = df1.apply(lambda x: pd.Series(x.dropna().values), axis=1)
df.columns = ['ItemNo','Category','SIZE','Model','Customer','Week Date','<New col name>']

为了收敛到一行,你可以像这样使用groupby

df.groupby('ItemNo', as_index=False).first()

【讨论】:

  • 嘿,谢谢!我接近了很多,但是使用这种方法,我仍然获得了 ItemNo 1,三次,并且每个实例都有自己的值。我正在尝试更改它,因此 ItemNo1 只有一行,三列具有相应的值
  • 你好,我更新了,你可以groupby来解决它
  • 太好了,谢谢!是否有其他选项可以按更多字段分组?我相信我删除了很多值,理想情况下,我需要检查“价格”之前的所有列,如果所有这些都匹配,则执行 groupby 操作:)(日期和 itemno 通常是相同的,不同的客户等)
  • 是的,您可以df.groupby(['ItemNo', 'Category' ,'Size',...], as_index=False).first() 为多个列并以相同的方式添加更多:)
  • 救命! Pandas 太简洁了,谢谢老兄!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-25
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
相关资源
最近更新 更多