gpt4 book ai didi

python - 处理闰年并替换新日期

转载 作者:太空宇宙 更新时间:2023-11-04 05:34:17 24 4
gpt4 key购买 nike

我在列名称 DATE 下的 python 数据框 (df) 中有一个日期列表:

0       1998-03-31
1 1998-06-30
2 1998-09-30
3 1998-12-31
4 1999-03-31
5 1999-06-30
6 1999-09-30
7 1999-12-31
8 2000-02-29
9 2000-06-30
10 2000-09-30
11 2000-12-31
12 2001-03-31
13 2001-06-30
14 2001-09-30
Name: DATE, dtype: datetime64[ns]

我想将所有闰年日期 XXXX-02-29 变成 XXXX-02-28。最有效的方法是什么?谢谢。

最佳答案

这可以通过 pd.datetimelambda apply 来完成:

import pandas as pd

# Make DataFrame
df = pd.DataFrame(
pd.date_range('1998-02-28', periods=12, freq='6M'),
columns=['Date']
)
print 'Original DataFrame:'
print df
print

# Replace feb 29 with feb 28
df['Date'] = df['Date'].apply(
lambda x:
x if x.month != 2 and x.date != 29
else pd.datetime(x.year, x.month, 28)
)

print 'Processed DataFrame:'
print df
print

Original DataFrame:
Date
0 1998-02-28
1 1998-08-31
2 1999-02-28
3 1999-08-31
4 2000-02-29
5 2000-08-31
6 2001-02-28
7 2001-08-31
8 2002-02-28
9 2002-08-31
10 2003-02-28
11 2003-08-31

Processed DataFrame:
Date
0 1998-02-28
1 1998-08-31
2 1999-02-28
3 1999-08-31
4 2000-02-28
5 2000-08-31
6 2001-02-28
7 2001-08-31
8 2002-02-28
9 2002-08-31
10 2003-02-28
11 2003-08-31

关于python - 处理闰年并替换新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36084694/

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