【问题标题】:Increment dataframe column based on condition根据条件增加数据框列
【发布时间】:2019-07-22 21:33:26
【问题描述】:

我有一个数据框,我想根据不同列的条件创建一个新列。使用 1 创建新列“ans”,并根据列“ix”递增。在“ix”列中,如果值与下一个相同,则保持“ans”列相同,如果其增量不同,“ans”

感谢您的回答,我是 Python 新手,所以我不知道该怎么做

      index   ix  
        1     pa 
        2     pa
        3     pa
        4     pe
        5     fc
        6     pb
        7     pb
        8     df

应该导致:-

      index   ix  ans
        1     pa   1
        2     pa   1
        3     pa   1
        4     pe   2
        5     fc   3
        6     pb   4
        7     pb   4
        8     df   5

【问题讨论】:

  • 对不起,我已经编辑了问题
  • 是否必须按照出现在ix 中的顺序?或者只是给每个值一个唯一的递增数字?
  • 是的,按顺序显示在 ix 中

标签: python pandas dataframe


【解决方案1】:
In [47]: df['ans'] = (df['ix'] != df['ix'].shift(1)).cumsum()

In [48]: df
Out[48]: 
   index  ix  ans
0      1  pa    1
1      2  pa    1
2      3  pa    1
3      4  pe    2
4      5  fc    3
5      6  pb    4
6      7  pb    4
7      8  df    5

【讨论】:

    猜你喜欢
    • 2021-12-08
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2023-03-24
    • 2021-03-02
    • 2021-11-04
    相关资源
    最近更新 更多