我正在从字典序列创建一个 Pandas DataFrame。
这些词典很大而且有些异构。
有些字段是日期。
我想自动检测并解析日期字段。
这可以通过以下方式实现
df0 = pd.Dataframe.from_dict(dicts)
df0.to_csv('tmp.csv', index=False)
df = pd.read_csv('tmp.csv', parse_dates=True)
我想找到一种更直接的方法来做到这一点。
Use pd.to_datetime
with errors='ignore'
- 仅用于列
dtype == object
using select_dtypes
。这可以防止将数字列转换为无意义的日期。
-
'ignore'
如果遇到任何错误,则放弃转换尝试。
-
combine_first
被用来代替update
因为update
保留初始值dtypes
。既然他们是对象,这就会把一切搞砸。
df.select_dtypes(include=object).apply(pd.to_datetime, errors='ignore').combine_first(df)
date0 date1 feuxdate notadate
0 2019-01-01 NaT NaN NaN
1 NaT NaT 0.0 NaN
2 NaT NaT NaN hi
3 NaT 2019-02-01 NaN NaN
使用它也可能会变得棘手assign
处理dtypes
df.assign(**df.select_dtypes(include=object).apply(pd.to_datetime, errors='ignore'))
Setup
dicts = [
{'date0': '2019-01-01'},
{'feuxdate': 0},
{'notadate': 'hi'},
{'date1': '20190201'}
]
df = pd.DataFrame.from_dict(dicts)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)