【问题标题】:Convert a column into time in pandas dataframe将一列转换为熊猫数据框中的时间
【发布时间】:2015-09-15 02:52:36
【问题描述】:

我正在将一个 csv 文件读入 pandas DataFrame。 csv 文件中的一列是以'09:53:00 AM' 格式存储为字符串的时间。

我需要将此列转换为 DataFrame 中的时间列。原因是我需要根据时间过滤该列 - 例如,我想根据大于 9:00:00 AM 且小于 02:00:00 PM 的时间过滤数据。

请注意,日期在单独的列中。我所拥有的如下:

Col 1,Col 2(date),Col3(time)
AAA,01/29/2015,9:23:00 AM
BBB,02/18/2015,3:07:00 PM

我需要得到如下结果:只有包含 AAA 的记录。

【问题讨论】:

    标签: python pandas time dataframe


    【解决方案1】:

    您可以使用read_csvparse_dates 选项:

    import pandas as pd
    df = pd.read_csv('date.csv', parse_dates=['Col3(time)'])
    

    并且Col3(time) 列将被解析为日期。要单独使用时间信息执行选择,您可以使用类似日期时间的列可用的dt 访问器:

    t0, t1 = pd.to_datetime(['9:00:00 AM', '02:00:00 PM']).time
    print df[(df['Col3(time)'].dt.time > t0) & (df['Col3(time)'].dt.time < t1)]
    

    输出:

      Col 1  Col 2(date)          Col3(time)
    0   AAA   01/29/2015 2015-09-15 09:23:00
    

    【讨论】:

    • 是的,但我有 2 列 - 一个是日期,另一个是时间。我只需要将字符串中表示的时间列转换为时间列,而不是日期。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2020-12-19
    • 2020-05-11
    • 2016-01-19
    • 2021-12-18
    • 2017-08-26
    相关资源
    最近更新 更多