gpt4 book ai didi

python - Pandas 日期时间表示的转换

转载 作者:太空宇宙 更新时间:2023-11-03 15:58:28 24 4
gpt4 key购买 nike

我得到了一个数据框,其中日期列为 datetime64[ns] 类型,采用以下表示形式:

2016 年 1 月 31 日为:2016-01-31

我想要的是这样的表示:

2016 年 1 月 31 日:2016 年 1 月 31 日

2016 年 12 月 31 日:2016 年 12 月 31 日

重要的是,10 月之前的所有月份,开头的 0 都必须去掉,即 9 月之前的月份只有一位数。

最佳答案

如果 dtype 已经是 datetime,您可以使用 dt.strftime 为您提供字符串表示形式以交换日月顺序:

In [3]:
df = pd.DataFrame({'date':['2016-01-31', '2016-12-31']})
df['date'] = pd.to_datetime(df['date'])
df

Out[3]:
date
0 2016-01-31
1 2016-12-31

In [4]:
df['strftime'] = df['date'].dt.strftime('%m/%d/%Y')
df

Out[4]:
date strftime
0 2016-01-31 01/31/2016
1 2016-12-31 12/31/2016

但是,由于您不需要日和月的前导零,因此您可以访问日期时间的各个日、月、年部分,并将它们转换为 str 并自行添加分隔符:

In [5]:
df['custom'] = df['date'].dt.month.astype(str) + '/' + df['date'].dt.day.astype(str) + '/' + df['date'].dt.year.astype(str)
df

Out[5]:
date strftime custom
0 2016-01-31 01/31/2016 1/31/2016
1 2016-12-31 12/31/2016 12/31/2016

但是,我建议不要这样做,日期时间数据类型允许更轻松的过滤和算术运算,当数据类型是 str 时这并不容易,因此该列在 IMO 中失去了用处

关于python - Pandas 日期时间表示的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40557328/

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