如何以 python pandas 中的日期格式从 csv 中读取数据

how to read data from csv as date format in python pandas

我有以下格式的数据

Month        Country BA Total
11/1/2018     CN     3   10 

虽然我想要日期格式,但阅读月份作为对象后, 我尝试使用

将其转换为日期时间格式
hs = pd.read_csv('history.csv',parse_dates=['Month'])  #this is not solving the issue either

hs['Month'] = pd.to_datetime(hs['Month']) #this throws error

请建议我如何将其读取为日期或将其转换为日期格式

试试这个

from datetime import datetime
dateparse = lambda x: datetime.strptime(x, '%m/%d/%Y')

df = pd.read_csv('history.csv', parse_dates=['Month'], date_parser=dateparse)

尝试这两行中的一个,也许不会出错,您的错误可能基于 day is first or month is first:

df['sale_date'] = pd.to_datetime(df['sale_date'], format='%m/%d/%y')
# or
df['sale_date'] = pd.to_datetime(df['sale_date'], dayfirst=False)

df['sale_date'] = pd.to_datetime(df['sale_date'], format='%d/%m/%y')
# or
df['sale_date'] = pd.to_datetime(df['sale_date'], dayfirst=True)

如果文件中的日期少于原始日期,加载没有 parse_dates 的文件通常是个好主意,然后使用 pd.to_datetime() 更好地控制,包括格式和如何处理错误('raise''coerce''ignore')。

由于pandas以纳秒分辨率表示时间戳,因此可以使用 64 位整数表示的时间跨度限制为大约 584 年 解决方法:

这会将超出范围的日期强制为 NaT

pd.to_datetime(date_col_to_force, errors = 'coerce')

非常感谢所有的建议,我尝试了最后一个并且它有效,因为我运行时间不够,无法尝试其他建议,一旦有时间一定会尝试。