Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有自动日期解析功能的dicts数据帧_Python_Pandas_Date_Dataframe - Fatal编程技术网

Python 具有自动日期解析功能的dicts数据帧

Python 具有自动日期解析功能的dicts数据帧,python,pandas,date,dataframe,Python,Pandas,Date,Dataframe,我正在从dicts序列创建一个Pandas数据帧。 这些词典很大,而且有点异构。 有些字段是日期 我想自动检测和解析日期字段。 这可以通过以下方式实现: df0 = pd.Dataframe.from_dict(dicts) df0.to_csv('tmp.csv', index=False) df = pd.read_csv('tmp.csv', parse_dates=True) 我想找到一种更直接的方法来实现这一点。使用pd.to\u datetime和errors='ignore'

我正在从dicts序列创建一个Pandas数据帧。 这些词典很大,而且有点异构。 有些字段是日期

我想自动检测和解析日期字段。 这可以通过以下方式实现:

df0 = pd.Dataframe.from_dict(dicts)
df0.to_csv('tmp.csv', index=False)
df = pd.read_csv('tmp.csv', parse_dates=True)
我想找到一种更直接的方法来实现这一点。

使用
pd.to\u datetime
errors='ignore'
  • 仅在
    dtype==object
    的列上使用
    select\u dtypes
    。这可以防止将数字列转换为无意义的日期
  • “忽略”
    如果遇到任何错误,将放弃转换尝试
  • 使用
    combine\u first
    代替
    update
    ,因为
    update
    保留初始
    dtypes
    。既然他们是目标,这会把事情搞砸的

使用
assign
处理
dtypes

df.assign(**df.select_dtypes(include=object).apply(pd.to_datetime, errors='ignore'))
安装程序
@皮尔斯:当然可以,拜托!应该把它当作你的。大部分都是相同的组件(:哦,好吧,我想我们会活下来的。@piRSquared aha不用担心,先生:-),因为
select\u dtypes
是使它工作的关键:-)
df.assign(**df.select_dtypes(include=object).apply(pd.to_datetime, errors='ignore'))
dicts = [
    {'date0': '2019-01-01'},
    {'feuxdate': 0},
    {'notadate': 'hi'},
    {'date1': '20190201'}
]

df = pd.DataFrame.from_dict(dicts)