如何在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循环,但是有没有更多的熊猫本机方式来完成这个?
当前一行是“星期日”时,检查当前行是否为“星期一”以生成布尔掩码。然后,对结果执行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