Я создаю Pandas DataFrame из последовательности диктов. Диктовки большие и несколько разнородные. Некоторые поля являются датами.
Я хотел бы автоматически обнаруживать и анализировать поля даты. Это может быть достигнуто путем
df0 = pd.Dataframe.from_dict(dicts)
df0.to_csv('tmp.csv', index=False)
df = pd.read_csv('tmp.csv', parse_dates=True)
Я хотел бы найти более прямой способ сделать это.






pd.to_datetime с errors='ignore'dtype == object с помощью 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'))
dicts = [
{'date0': '2019-01-01'},
{'feuxdate': 0},
{'notadate': 'hi'},
{'date1': '20190201'}
]
df = pd.DataFrame.from_dict(dicts)
ба! должен был сохранить его как твой. В основном те же комплектующие (-: Ну да ладно, думаю переживем.
@piRSquared ага, не беспокойтесь, сэр :-), так как select_dtypes - это ключ к тому, чтобы заставить его работать :-)
@piRSquared конечно, пожалуйста