【问题标题】:Why my code didn't select data from Pandas dataframe? [duplicate]为什么我的代码没有从 Pandas 数据框中选择数据? [复制]
【发布时间】:2019-05-14 15:53:05
【问题描述】:

为什么我的日期过滤器不起作用?所有其他过滤器都可以正常工作。

 import pandas as pd
    import datetime
    data =pd.DataFrame({
    'country': ['USA', 'USA', 'Belarus','Brazil'],
    'time': ['2018-01-15 16:11:45.923570+00:00', '2018-01-15 16:19:45.923570+00:00', '2018-01-16 16:12:45.923570+00:00', '2018-01-17 16:14:45.923570+00:00']})
    # Конвертируем в datetime
    data['time'] = pd.to_datetime(data['time'])
    # Конвертируем в date
    data['time'] = data['time'].dt.date
    print(data)
    # Ищем дату '2018-12-12'
    select_date = data.loc[data['time'] == '2018-01-17']
    print(select_date)
  1. 如何过滤数据框中的确切数据?
  2. 如何每天按日期迭代数据帧?

    for i in data:
        All rows in a specific day
    

祝大家好运和繁荣!

【问题讨论】:

    标签: python pandas datetime pandas-groupby series


    【解决方案1】:

    datetime.date 对象用 Pandas 向量化。 docs 表示:

    返回 python datetime.date 对象的 numpy 数组

    常规 Python 对象存储在不支持花哨日期索引的 object dtype 系列中。相反,你可以normalize:

    data['time'] = pd.to_datetime(data['time'])
    select_date = data.loc[data['time'].dt.normalize() == '2018-01-17']
    

    您可以使用相同的想法按天迭代您的数据框:

    for day, day_df in data.groupby(data['time'].dt.normalize()):
        # do something with day_df
    

    【讨论】:

    • 你真的是最棒的。一切正常!感谢您的帮助,祝您好运!
    猜你喜欢
    • 1970-01-01
    • 2015-02-24
    • 2019-01-19
    • 1970-01-01
    相关资源
    最近更新 更多