在to_datetimePandas中保留日期而不是时间(从csv导入数据时)[重复]

n3schb8v  于 2022-12-28  发布在  其他
关注(0)|答案(1)|浏览(108)
    • 此问题在此处已有答案**:

(13个答案)
5天前关闭。
你能帮我解决以下问题吗?当我导入一个csv文件时,我有一个像smth这样的 Dataframe :

df = pd.DataFrame(['29/12/17',
'30/12/17', '31/12/17', '01/01/18', '02/01/18'], columns=['Date'])

我想把df的'Date'列转换成Date Time对象,所以我使用下面的代码:

df['date_f'] = pd.to_datetime(df['Date'])

我得到的是这样的:

df1 = pd.DataFrame({'Date': ['29/12/17', '30/12/17', '31/12/17', '01/01/18', '02/01/18'], 
                'date_f':['2017-12-29T00:00:00.000Z', '2017-12-30T00:00:00.000Z', '2017-12-31T00:00:00.000Z', '2018-01-01T00:00:00.000Z', '2018-02-01T00:00:00.000Z']})

问题是,为什么我获取的date_f格式为('2017 - 12 - 29T00:00:00.000Z'),而不仅仅是('2017 - 12 - 29'),以及如何获取更高的格式('2017 - 12 - 29')?
另外,如果您使用上面的代码,它将以我需要的格式显示date_f。但是,如果数据是从csv导入的,它将提供上面指定的date_f格式

6uxekuva

6uxekuva1#

使用dt.date

df['date_f'] = pd.to_datetime(df['Date']).dt.date

df['date_f'] = pd.to_datetime(df['Date'], utc=False)

两种情况将获得相同的输出

Date     date_f
0  29/12/17 2017-12-29
1  30/12/17 2017-12-30
2  31/12/17 2017-12-31
3  01/01/18 2018-01-01
4  02/01/18 2018-02-01

相关问题