熊猫将日期更改为较短的格式

时间:2019-10-06 07:55:49

标签: python pandas datetime

G'day!

在有限的时间内使用Python和Pandas时,一个问题又一次出现-如果我的输入数据具有长格式的日期/时间,如何将其更改为较短的版本?

例如,输入文件中的日期为:

10/10/2019 5:52:30 AM

如果要执行日期/时间操作,则需要将其转换为日期时间:

df = pd.to_datetime(df['date'], format="%d/%m/%Y %H:%M:%S %p")

所以现在我有全长格式的datetime对象。但是,如果我只需要日/月/年呢?

我当然可以将它们转换回字符串,然后将其转换回日期时间格式。

df = df['date'].dt.strftime("%d/%m/%Y")
df = pd.to_datetime(df['date'], format="%d/%m/%Y")

看这件事让我的眼睛受伤...应该有一种更简单的方法,对吗?

1 个答案:

答案 0 :(得分:1)

熊猫floorround函数可以完成这项工作:

#Generate the data
df = pd.DataFrame({'year': [2015, 2016],
                'month': [2, 3],
                'day': [4, 5],
                'hour': [2, 23]})
df['Date']=pd.to_datetime(df)

#Floor and round datetime
df['Date'].dt.floor('d')
df['Date'].dt.round('d')

dt.floor的输出是:

0   2015-02-04
1   2016-03-05
Name: Date, dtype: datetime64[ns]

dt.round

0   2015-02-04
1   2016-03-06
Name: Date, dtype: datetime64[ns]