我有一个period[Q-MAR]列,我想过滤最近一个财政年度的数据。在pandas
中是否有任何方法可以过滤/查询period[Q-MAR]数据类型列。以下是创建所需数据帧的代码:
import datetime
import pandas as pd
df = pd.DataFrame([datetime.date(2019, 10, 25), datetime.date(2019, 6, 25),
datetime.date(2020, 3, 25), datetime.date(2018, 10, 25),
datetime.date(2017, 10, 25), datetime.date(2018, 6, 25),
datetime.date(2017, 10, 25), datetime.date(2019, 7, 25)],
columns=['dates'])
df['dates'] = pd.to_datetime(df['dates'])
df['quater_info'] = pd.PeriodIndex(df['dates'], freq='Q-MAR')
print(df)
输出:
dates quater_info
0 2019-10-25 2020Q3
1 2019-06-25 2020Q1
2 2020-03-25 2020Q4
3 2018-10-25 2019Q3
4 2017-10-25 2018Q3
5 2018-06-25 2019Q1
6 2017-10-25 2018Q3
7 2019-07-25 2020Q2
以下是我为获取最近一个财政年度的数据而编写的代码:
print(df[df['quater_info'].astype(str).str.contains(str(df['quater_info'].max().year))])
输出:
dates quater_info
0 2019-10-25 2020Q3
1 2019-06-25 2020Q1
2 2020-03-25 2020Q4
7 2019-07-25 2020Q2
有没有更好的方法查询pandas中的period[Q-MAR]
dtype列。谢谢
我不确定您是否需要转换为字符串:
输出:
除此之外,我认为没有更快/更短的方法
相关问题 更多 >
编程相关推荐