Pandas:选择相对于另一行直到最后一次出现值的行



给定以下if语句:

if day_csv['Day of Week'].iloc[-7] != 'Monday':

我想选择在iloc[-7]之前的星期一之前的所有行(直到数据帧的底部)。

我该怎么做?

数据帧看起来像:

|日期|星期几|几列数字|

谢谢你的帮助!我没有找到任何重复的,如果这个有点简单,很抱歉。

编辑:

事实上,我改变了主意,我将如何做这件事-更容易展示过去8-14天左右。不过,为了学习/回答最初的问题:

以下是一些示例数据:

0.1530860.153086
日期上周同一天
2021-10-08<1114.02021-10-09星期六>121.0
2021-104525.0
2021-10-119553.02021-10-12星期二9235.0
2021-10-13<1114.0>
2021-10-14121.0
2021-10-154525.0
2021-10-169553.0
2021-10-179235.0
2021-10-189235.02021-10-18星期二9235.0

您可以省略最后6行(如果可能的话,通过索引第7行是Monday,通过Series.reindex获得由NaNs填充的原始值),通过累积和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  

相关内容

  • 没有找到相关文章

最新更新