【问题标题】:Columns based on Rows Location and ID [closed]基于行位置和 ID 的列 [关闭]
【发布时间】:2020-07-09 04:33:08
【问题描述】:

rows_2_columns

Col C 基于 Col A 和 Col B 创建新列。如果在 excel 中无法解决问题,则原始文件在 excel 中 python/pandas 也会很棒。提前致谢

【问题讨论】:

  • 这个问题没有表现出足够的努力。首先缺少 complete and reproducible ,您可以参考 this ,您也没有包含您尝试过的内容。您应该编辑问题,以便将来的读者更清楚。

标签: python excel pandas


【解决方案1】:

使用GroupBy.cumcount 作为计数器,通过DataFrame.set_index 创建MultiIndex,通过Series.unstackDataFrame.add_prefix 和最后一个DataFrame.reset_index 重塑:

print (df)
  Location  ID Item
0        A   1    X
1        A   1    Y
2        B   1    X
3        B   1    Y
4        B   1    Z

g = df.groupby(['Location','ID']).cumcount().add(1)
df1 = (df.set_index(['Location','ID', g])['Item']
         .unstack(fill_value='')
         .add_prefix('Item')
         .reset_index())
print (df1)    
  Location  ID Item1 Item2 Item3
0        A   1     X     Y      
1        B   1     X     Y     Z

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 2014-01-19
    • 2011-12-07
    相关资源
    最近更新 更多