熊猫位置索引和列条件

我有一个简化的数据框,可以将其设置如下:

indexes =['01/10/2017', '28/10/2018', '27/10/2019', '30/10/2019']
cols = ['Period', 'A', 'B', 'C']
df= pd.DataFrame(index = indexes, columns= cols)
df.Period = 1
df = pd.concat([df, 2*df.copy(), 3*df.copy()])
df.sort_index()

数据框看起来像:

    Period        A      B       C
01/10/2017  1   NaN     NaN     NaN
01/10/2017  2   NaN     NaN     NaN
01/10/2017  3   NaN     NaN     NaN
27/10/2019  1   NaN     NaN     NaN
27/10/2019  2   NaN     NaN     NaN
27/10/2019  3   NaN     NaN     NaN
28/10/2018  1   NaN     NaN     NaN
28/10/2018  2   NaN     NaN     NaN
28/10/2018  3   NaN     NaN     NaN
30/10/2019  1   NaN     NaN     NaN
30/10/2019  2   NaN     NaN     NaN
30/10/2019  3   NaN     NaN     NaN

我想找到此列表中的行:

FwdTimeChangeDates = ['28/10/2018', '27/10/2019']

Period> 2

我要+=2使用那些条件(例如Period- 3>54->6等)来使用Period

如何根据两个条件进行过滤?

df.loc[FwdTimeChangeDates] 给出:

Period A B C 28/10/2018 1 NaN NaN NaN 28/10/2018 2 NaN NaN NaN 28/10/2018 3 NaN NaN NaN 27/10/2019 1 NaN NaN NaN 27/10/2019 2 NaN NaN NaN 27/10/2019 3 NaN NaN NaN

df.loc[df.Period>2]

Period A B C 01/10/2017 3 NaN NaN NaN 28/10/2018 3 NaN NaN NaN 27/10/2019 3 NaN NaN NaN 30/10/2019 3 NaN NaN NaN

而且我要:

Period A B C 28/10/2018 3 NaN NaN NaN 27/10/2019 3 NaN NaN NaN

但我不能同时满足两个条件:

df.loc[FwdTimeChangeDates & df.Period>1] 要么 df.loc[(FwdTimeChangeDates) & (df.Period>1)]

cs95

结合两个条件,isin用于第一个条件

df[df.index.isin(['28/10/2018', '27/10/2019']) & (df.Period > 2)]

            Period    A    B    C
28/10/2018       3  NaN  NaN  NaN
27/10/2019       3  NaN  NaN  NaN 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章