将Pandas Dataframe 的日期列转换为相应年份的最后一个日期

7lrncoxx  于 2022-12-16  发布在  其他
关注(0)|答案(2)|浏览(137)

我有一个panda Dataframe ,我们称之为df,如下所示:

Acount              Type   Id               Date         Value          Per
0   Exp                 P      IQ               2016-03-31  -23421.170324   3M
1   Exp                 P      IQ               2017-03-31  -44803.599908   3M
2   Exp                 P      IQ               2018-03-31  -29294.611346   3M
3   Exp                 P      IQ               2019-03-31  -9463.281704    3M

我需要日期列包含每年的最后一天,例如:“2019年12月31日”和df的外观如下所示:

Acount              Type   Id               Date         Value          Per
0   Exp                 P      IQ               2016-12-31  -23421.170324   3M
1   Exp                 P      IQ               2017-12-31  -44803.599908   3M
2   Exp                 P      IQ               2018-12-31  -29294.611346   3M
3   Exp                 P      IQ               2019-12-31  -9463.281704    3M

你们知道我该怎么做吗?

j1dl9f46

j1dl9f461#

使用pd.offsets.YearEnd

df['Date'] = pd.to_datetime(df['Date']) + pd.offsets.YearEnd(0)

输出:

Acount Type  Id       Date         Value Per
0    Exp    P  IQ 2016-12-31 -23421.170324  3M
1    Exp    P  IQ 2017-12-31 -44803.599908  3M
2    Exp    P  IQ 2018-12-31 -29294.611346  3M
3    Exp    P  IQ 2019-12-31  -9463.281704  3M
mwkjh3gx

mwkjh3gx2#

示例

df = pd.DataFrame(['2016-03-31', '2017-03-31', '2018-03-31'], columns=['Date'])

df

Date
0   2016-03-31
1   2017-03-31
2   2018-03-31

代码

df['Date'].astype('Period[Y]').dt.to_timestamp(freq='Y')

result

0   2016-12-31
1   2017-12-31
2   2018-12-31
Name: Date, dtype: datetime64[ns]

相关问题