【问题标题】:CSV Date Parsing in PandasPandas 中的 CSV 日期解析
【发布时间】:2021-02-07 10:39:56
【问题描述】:

我正在尝试从以下示例数据集中一起解析日期


No,year,month,day,hour,pm2.5,DEWP,TEMP,PRES,cbwd,Iws,Is,Ir
1,2010,1,1,0,NA,-21,-11,1021,NW,1.79,0,0
2,2010,1,1,1,NA,-21,-12,1020,NW,4.92,0,0
3,2010,1,1,2,NA,-21,-11,1019,NW,6.71,0,0
4,2010,1,1,3,NA,-21,-14,1019,NW,9.84,0,0

我的代码如下:

dateparser = lambda x: pd.datetime.strptime(x, "%Y %m %d %H")`
dataset = pd.read_csv("raw.csv", parse_dates=['year', 'month', 'day', 'hour'], index_col = 0,date_parser=mydateparser)

它抛出了这个错误:

ValueError: Missing column provided to 'parse_dates': 'day, hour, month, year'

谁能帮我理解为什么会出现这个错误

【问题讨论】:

    标签: python pandas date parsing


    【解决方案1】:

    尝试将其传递为dict 或列表列表

    dataset = pd.read_csv("raw.csv", parse_dates={'date':['year', 'month', 'day',
    'hour']}, index_col = 1, date_parser=dateparser)
    

    或者

    dataset = pd.read_csv("raw.csv", parse_dates=[['year', 'month', 'day',
    'hour']], index_col = 1, date_parser=dateparser)
    

    PS:无法重现相同的错误,但建议的解决方案应该可以正常工作。

    【讨论】:

    • 感谢您作为列表传递的响应,但无论出于何种原因,我都必须通过索引号而不是列名来引用列。
    猜你喜欢
    • 2015-09-01
    • 2023-03-17
    • 2020-07-01
    • 2021-09-03
    • 2018-06-11
    • 2019-11-21
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多