gpt4 book ai didi

python - 在 Pandas 数据框中查找最后可用日期

转载 作者:行者123 更新时间:2023-12-04 14:50:15 25 4
gpt4 key购买 nike

假设我有一个如下所示的 Pandas DataFrame:

+------------+-------+
| Date | Price |
+------------+-------+
| 01/01/2021 | 10 |
| 01/02/2021 | 20 |
| 01/03/2021 | 30 |
| 01/05/2021 | 40 |
| 01/08/2021 | 20 |
| 01/09/2021 | 10 |
+------------+-------+

上面的数据框可以使用下面的代码生成:

df = pd.DataFrame({'Date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-05', '2021-01-08', '2021-01-09'],
'Price': [10, 20, 30, 40, 20, 10]})
df['Date'] = pd.to_datetime(df['Date'])

现在给定一个存储在变量 end_date 中的日期。第一步是查找日期是否存在于数据框。可以使用以下代码完成:

if end_date in df.Date.values:
pass
else:
# find last available date.

在数据框中查找最后可用日期的最优雅方法是什么。

例如如果 end_date = '2021-01-10'。由于它不存在于数据框中,我希望将 end_date 值设置为 2021-01-09。同样,如果 end_date = 2021-01-07 我希望将 end_date 值设置为 2021-01-05

或者,如果 end_date = 2021-01-08 end_date 不会被覆盖并保持原样,即 end_date = 2021-01-08.

最佳答案

您可以尝试使用 lociloc:

end_date = "2021-01-07"
print(df.loc[df['Date'] <= end_date, 'Date'].iloc[-1].date())

输出:

2021-01-05

或者:

end_date = "2021-01-07"
print(df.loc[df['Date'] <= end_date, 'Date'].max().date())

关于python - 在 Pandas 数据框中查找最后可用日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69187899/

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