为什么我的代码没有从Pandas数据框中选择数据?

时间:2018-12-13 12:20:03

标签: python pandas datetime pandas-groupby series

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

 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
    

祝大家好运和繁荣!

1 个答案:

答案 0 :(得分:2)

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