gpt4 book ai didi

python - 按天在 Pandas 过滤器中获取下一个可用日期

转载 作者:太空宇宙 更新时间:2023-11-04 02:13:14 25 4
gpt4 key购买 nike

我使用以下代码行过滤了 pandas 数据框中的 datetime64[ns] 类型,以获取每月特定日期的数据。

df[df['Date'].map(lambda x: x.day) == 1]

输出如下:

19.9    2013-07-01
34.8 2013-08-01
12.9 2013-10-01
12.6 2013-11-01

但是如果您注意到 2013-09-01 的条目丢失了,因为它在原始数据集中不可用。在这种情况下,我想获取 2013-09-02 的数据。理想情况下,如果日期在周末(周六和周日或任何缺失日期,如假期或特定日期不可用的数据),我想获取下一个可用日期的数据。想知道我们是否可以使用 pandas 实现,或者我需要手动迭代来执行此功能。

最佳答案

我想你需要 DatetimeIndexasfreqmethod='bfill' 用于回填缺失值:

df = df.set_index('Date').asfreq('d', method='bfill')

然后按DatetimeIndex.day过滤:

df1 = df[df.index.day == 1]

示例:

print (df)
Val Date
0 19.9 2013-07-01
1 34.8 2013-08-01
2 10.4 2013-09-02
3 12.9 2013-10-01
4 12.6 2013-11-01

print (df.dtypes)
Val float64
Date datetime64[ns]

df = df.set_index('Date').asfreq('d', method='bfill')
df1 = df[df.index.day == 1]
print (df1)
Val
Date
2013-07-01 19.9
2013-08-01 34.8
2013-09-01 10.4
2013-10-01 12.9
2013-11-01 12.6

关于python - 按天在 Pandas 过滤器中获取下一个可用日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53265823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com