为什么我的代码没有从 Pandas 数据框中选择数据? [英] Why my code didn't select data from Pandas dataframe?

查看:52
本文介绍了为什么我的代码没有从 Pandas 数据框中选择数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Why didn't my date filter work? All others filters work fine.

 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. 如何每天按日期迭代数据框?

  1. How can I filter exact data from dataframe?
  2. How can I iterate dataframe by date daily?

for i in data:
    All rows in a specific day

祝大家好运和繁荣!

推荐答案

datetime.date 对象使用 Pandas 进行矢量化.docs 表明:

datetime.date objects are not vectorised with Pandas. The docs indicate this:

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

Returns numpy array of python datetime.date objects

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

Regular Python objects are stored in object dtype series which do not support fancy date indexing. Instead, you can normalize:

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

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

You can use the same idea to iterate your dataframe by day:

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

这篇关于为什么我的代码没有从 Pandas 数据框中选择数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆