Pandas DataFrame中的Counter列,它根据其他列进行更改

2024-09-29 00:20:19 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在pandas数据帧中添加一个新列,我希望该列具有基于其他列条件的计数器,例如(显示所需的输出):

    WeekCounter  DayofWeeek
    1            Monday
    1            Monday
    1            Tuesday
    1            Sunday
    2            Monday
    2            Wednesday
    2            Thursday
    2            Sunday
    3            Monday
    3            Monday
    3            Monday

当列值从星期日更改为星期一时,如何创建一个列作为计数器?我最初的尝试是一个带有嵌套if语句的for循环,但是在实现这一点时,有没有更多的pandas原生方式呢?在


Tags: 数据pandasforif计数器语句条件原生
1条回答
网友
1楼 · 发布于 2024-09-29 00:20:19

当前一行是“星期日”时,检查当前行是否为“星期一”,以生成布尔掩码。然后,对结果执行cumsum。在

df['WeekCounter'] = (df.DayofWeek.eq('Monday') 
        & df.DayofWeek.shift().eq('Sunday')).cumsum() + 1

df

    WeekCounter  DayofWeek
0             1     Monday
1             1     Monday
2             1    Tuesday
3             1     Sunday
4             2     Monday
5             2  Wednesday
6             2   Thursday
7             2     Sunday
8             3     Monday
9             3     Monday
10            3     Monday

相关问题 更多 >