【问题标题】:使用熊猫根据结果分组映射值[重复]
【发布时间】:2023-03-08 13:54:01
【问题描述】:

如何改变这个数据框

Index_Value         Value
value_1             1
value_1             2
value_1             3
value_2             33
value_3             111
value_3             222

Index_Value         Value       Counter
value_1             1           1
value_1             2           2
value_1             3           3
value_2             33          1
value_3             111         1
value_3             222         2

使用熊猫。我开始使用 for 循环来实现这一点,但对于大型数据集,性能可能会很差。

【问题讨论】:

    标签: python pandas dataframe group-by


    【解决方案1】:

    你应该在groupby之后使用cumcount

    import pandas as pd
    
    df = pd.DataFrame({"Index_Value": ["v1", "v1", "v1", "v2", "v3", "v3"], "Value": list(range(6))})
    df.set_index("Index_Value", inplace=True)
    
    df.assign(Counter = df.groupby(df.index).cumcount() + 1)
    

    输出

                 Value  Counter
    Index_Value
    v1               0        1
    v1               1        2
    v1               2        3
    v2               3        1
    v3               4        1
    v3               5        2
    

    【讨论】:

      猜你喜欢
      • 2019-07-12
      • 2020-07-07
      • 1970-01-01
      • 2018-10-10
      • 2019-01-23
      • 2017-09-19
      • 2020-10-31
      • 2020-07-12
      • 2019-11-15
      相关资源
      最近更新 更多