我们如何使用 Pandas 来检查是否有任何列是日期时间数据类型列,然后仅将该列转换为日期格式字符串 (yyyy-mm-dd) 数据类型列。
我有多个日期时间列。所以,我不能按列名进行更改。但宁愿选择一种检查然后更改它的方式。
请帮我解决这个问题。
最佳答案
df = pd.DataFrame(data={'date':(['2018-12-08 00:00:00','2018-12-08 00:10:00','2018-12-08 01:10:00']),'B':[5,4,3],'C':[4,3,2]})
>>df
date B C
0 2018-12-08 00:00:00 5 4
1 2018-12-08 00:10:00 4 3
2 2018-12-08 01:10:00 3 2
>>df.dtypes
date object
B int64
C int64
>>df[df.select_dtypes(['object']).columns]=df[df.select_dtypes(['object']).columns].apply(pd.to_datetime)
发布此内容,您可以在系列上调用
dt.date
,例如:>>df['date'].dt.date
0 2018-12-08
1 2018-12-08
2 2018-12-08
或者选择多个列(注意,如果您有任何其他与日期不相似的对象列,则上述可能会失败,在这种情况下使用如下)
df[['col1','col2']] = df[['col1','col2']].apply(pd.to_datetime)
从文档:
unuder
select_dtypes
关于python - Pandas - 检查是否有任何列是日期时间并将其更改为日期格式字符串 (yyyy-mm-dd),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54247148/