【问题标题】:Mixed date formats dd/mm/yyyy and d/m/y in pandaspandas 中的混合日期格式 dd/mm/yyyy 和 d/m/y
【发布时间】:2017-08-31 20:36:52
【问题描述】:

我有一列中包含混合日期格式的数据框。有些是 dd/mm/yyyy 格式,有些是 d/m/y 格式。如何根据单元格的值应用适当的格式将列设置为日期时间? 我正在读取 csv 文件:

DayofWeek,Date
Friday,22/05/2015
Friday,10/2/12
Friday,10/10/14
Friday,21/10/2011
Friday,8/7/11

【问题讨论】:

  • pd.read_csv('path_to_csv_file', parse_dates=[1], dayfirst=True) 怎么样?还是pd.read_csv('file_with_dates.csv', parse_dates=['Date'], dayfirst=True)
  • 如果文件已经读入,你可以使用 pandas datetime pd.to_datetime(df.Date, dayfirst=True)
  • 感谢这两种方法都有效。

标签: python-3.x date pandas datetime


【解决方案1】:
df = pd.read_csv('dates.txt', parse_dates=['Date'], dayfirst=True)
df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 2 columns):
DayofWeek    5 non-null object
Date         5 non-null datetime64[ns]
dtypes: datetime64[ns](1), object(1)
memory usage: 100.0+ bytes

print(df)

  DayofWeek       Date
0    Friday 2015-05-22
1    Friday 2012-02-10
2    Friday 2014-10-10
3    Friday 2011-10-21
4    Friday 2011-07-08

【讨论】:

  • infer_datetime_format=True 选项是更通用的日期时间解析解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多