gpt4 book ai didi

Python 转换列中不同的日期格式

转载 作者:行者123 更新时间:2023-12-01 09:05:48 25 4
gpt4 key购买 nike

我正在尝试转换具有不同日期格式的列。

例如:

month
2018-01-01 float64
2018-02-01 float64
2018-03-01 float64
2018-03-01 00:00:00 float64
2018-04-01 01:00:00 float64
2018-05-01 01:00:00 float64
2018-06-01 01:00:00 float64
2018-07-01 01:00:00 float64

我想将列中的所有内容转换为月份和年份。例如,我想要 18 年 1 月、18 年 2 月、18 年 3 月等。

我尝试使用此代码首先将我的列转换为日期时间:

df['month'] =  pd.to_datetime(df['month'], format='%Y-%m-%d')

但它返回一个 float64:

输出

month
2018-01-01 00:00:00 float64
2018-02-01 00:00:00 float64
2018-03-01 00:00:00 float64
2018-04-01 01:00:00 float64
2018-05-01 01:00:00 float64
2018-06-01 01:00:00 float64
2018-07-01 01:00:00 float64

在我的 CSV 输出中,月份格式已更改为 01/05/2016 00:00:00。你能帮我隐藏到月份和年份吗,例如18 年 8 月。

谢谢

最佳答案

我假设你有一个 Pandas 数据框。在这种情况下,您可以使用 pd.Series.dt.to_period :

s = pd.Series(['2018-01-01', '2018-02-01', '2018-03-01',
'2018-03-01 00:00:00', '2018-04-01 01:00:00'])

res = pd.to_datetime(s).dt.to_period('M')

print(res)

0 2018-01
1 2018-02
2 2018-03
3 2018-03
4 2018-04
dtype: object

如您所见,这会产生一系列 dtype object,通常效率很低。更好的想法是将日期设置为该月的最后一天,并在内部维护一个由整数表示的日期时间系列。

关于Python 转换列中不同的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52060954/

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