为啥我的代码没有从 Pandas 数据框中选择数据? [复制]
Posted
技术标签:
【中文标题】为啥我的代码没有从 Pandas 数据框中选择数据? [复制]【英文标题】: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)
-
如何过滤数据框中的确切数据?
如何每天按日期迭代数据帧?
for i in data:
All rows in a specific day
祝大家好运和繁荣!
【问题讨论】:
【参考方案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
【讨论】:
你真的是最棒的。一切正常!感谢您的帮助,祝您好运!以上是关于为啥我的代码没有从 Pandas 数据框中选择数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
仅从数据框中选择每个月的最后一周 - Python/Pandas