【问题标题】:Pandas filtering data frame by date, which is in different formatPandas 按日期过滤数据帧,格式不同
【发布时间】:2019-01-03 18:03:49
【问题描述】:

所以我将 csv 文件加载到 pandas 数据帧中没有任何问题。

df = pd.read_csv(filename,na_values=[""])

csv 中有一个名为 date_GMT 的列,其日期格式为 2017 年 6 月 29 日 - 下午 2:00。问题是当我进行比较以过滤掉示例时,它将此值视为字符串。我如何将其视为约会。

df=df[(df['date_GMT'] < datetime.date(year=2017,month=8,day=25))]

我尝试了这个,但它不起作用,因为它无法比较字符串和日期。

【问题讨论】:

    标签: python pandas csv date dataframe


    【解决方案1】:

    在比较之前转换为datetime

    df = pd.DataFrame({'col': ['Jun 29 2017 - 2:00pm', 'Sep 2 2018 - 4:00pm',
                               'Jan 15 2017 - 6:00am', 'Mar 29 2018 - 11:00pm']})
    
    df['col'] = pd.to_datetime(df['col'])
    
    print(df.loc[df['col'] < '2017-08-25'])
    
                      col
    0 2017-06-29 14:00:00
    2 2017-01-15 06:00:00
    

    更好的是,您可以在阅读文件时指定datetime 列:

    df = pd.read_csv(filename, parse_dates=['date_GMT'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-29
      • 2014-02-03
      • 2022-09-23
      • 1970-01-01
      • 2022-11-30
      • 2018-08-28
      • 2014-05-18
      相关资源
      最近更新 更多