给定以下if语句:
if day_csv['Day of Week'].iloc[-7] != 'Monday':
我想选择在iloc[-7]之前的星期一之前的所有行(直到数据帧的底部)。
我该怎么做?
数据帧看起来像:
|日期|星期几|几列数字|
谢谢你的帮助!我没有找到任何重复的,如果这个有点简单,很抱歉。
编辑:
事实上,我改变了主意,我将如何做这件事-更容易展示过去8-14天左右。不过,为了学习/回答最初的问题:
以下是一些示例数据:
日期 | 上周同一天 | ||
---|---|---|---|
2021-10-08 | <1114.02021-10-09星期六> | 121.0 | |
2021-10 | 4525.0 | ||
2021-10-11 | 9553.02021-10-12星期二 | 9235.0 | |
2021-10-13 | <1114.0> | ||
2021-10-14 | 121.0 | ||
2021-10-15 | 4525.0 | ||
2021-10-16 | 9553.0 | ||
2021-10-17 | 9235.0 | ||
2021-10-18 | 9235.02021-10-18星期二 | 9235.0 |
您可以省略最后6行(如果可能的话,通过索引第7行是Monday
,通过Series.reindex
获得由NaN
s填充的原始值),通过累积和Series.eq
比较Monday
,并通过最大值最后过滤:
s = day_csv['Day of Week'].iloc[:-6].reindex(day_csv.index).eq('Monday').cumsum()
df = day_csv[s.eq(s.max())]
print (df)
Date Day of Week Offer Answer ... Last Week Same Day
3 2021-10-11 Monday 8424.0 2095.0 ... 9553.0
4 2021-10-12 Tuesday 8432.0 2095.0 ... 9235.0
5 2021-10-13 Wednesday 4821.0 2091.0 ... 1114.0
6 2021-10-14 Thursday 4821.0 2091.0 ... 121.0
7 2021-10-15 Friday 4821.0 2091.0 ... 4525.0
8 2021-10-16 Saturday 8424.0 2095.0 ... 9553.0
9 2021-10-17 Sunday 8432.0 2095.0 ... 9235.0
10 2021-10-18 Monday 8432.0 2095.0 ... 9235.0
11 2021-10-18 Tuesday 8432.0 2095.0 ... 9235.0
Percent Diff
3 0.264890
4 0.385800
5 -0.046474
6 0.153086
7 NaN
8 0.264890
9 0.385800
10 0.385800
11 0.385800