我正在使用pandas从csv文件中读取多组数据。有没有办法用read_csv指定要读入的数据的日期格式?
例如,我有一个数据文件,其日期时间列的格式如下:
d/m/y h:mm
和另一种格式如下:
yyyy-mm-dd HH:MM:ss
我想读取这些文件,然后匹配第二个日期格式。然后我可以使用to_datetime来确保列格式为日期时间格式并且可以用作pandas索引。有没有办法指定传入格式或使用to_datetime或read_csv更改每个格式的传出格式?最终目标是连接这些不同的数据帧,以便日期时间索引合并。
答案 0 :(得分:0)
我创建一个名为{strong> table.csv 的csv文件,以;
date;numbers
1/1/19 9:9;1
25/12/18 11:11;2
;
date;numbers
2019-01-02 09:09:09;3
2018-12-26 11:11:11;4
希望此代码可帮助您了解date_parser
在不同的formats中的日期:
import pandas as pd
fin = 'table.csv'
# NORMAL
dfA = pd.read_csv(fin, header=0, sep=';', nrows=2)
dfB = pd.read_csv(fin, header=4, sep=';', nrows=2)
dfN = pd.concat([dfA,dfB], ignore_index=True)
# PARSING DATE for each DataFrame with the
# date_parser
dfA = pd.read_csv(fin, header=0, sep=';', nrows=2,
parse_dates=['date'],
date_parser=lambda x: pd.datetime.strptime(x, '%d/%m/%y %H:%M'))
dfB = pd.read_csv(fin, header=4, sep=';', nrows=2,
parse_dates=['date'],
date_parser=lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S'))
dfP = pd.concat([dfA,dfB], ignore_index=True)
print("normal", dfN['date'].dtype)
print("parser", dfP['date'].dtype)
print()
print(dfN)
print()
print(dfP)