【问题标题】:Find Multiple Patterns and Merge查找多个模式并合并
【发布时间】:2021-12-18 22:10:32
【问题描述】:

如何在新的数据框中查找和排序以下内容

输入:

      IdA        IdB           Value
0     123        ABC_25_01     1
1     456        DEF_25_01     2
2     123        ABC_60_01     3
3     456        DEF_60_01     4

输出

      IdA        IdB      Value25 Value60
0     123        ABC_01   1       3
1     456        DEF_01   2       4

谢谢!

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

假设IdB 中的值都采用X_Y_Z 的形式,其中X_Z 是最终的IdBY 是列标题:

  1. 使用str.extract 获取“类别”,即两个下划线之间的数字
  2. 用户 str.replace 从 IdB 中删除“类别”。
  3. pivot 获取所需的输出
df["Category"] = df["IdB"].str.extract("_(.*)_")
df["IdB"] = df["IdB"].str.replace("_(.*)_", "_", regex=True)
output = (df.pivot(["IdA", "IdB"], "Category", "Value")
          .add_prefix("Value")
          .reset_index())

>>> output

Category  IdA     IdB  Value25  Value60
0         123  ABC_01        1        3
1         456  DEF_01        2        4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-09
    • 2020-01-17
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多