python - 熊猫数据框日期时间过滤器不起作用
问题描述
我正在学习如何使用 pandas 数据框并尝试预处理一些数据。我有一组数据显示天气,其中 datatime 字段作为字符串。每天在该数据集中出现两次,分别是 00:00 和 12:00。我正在尝试过滤它并仅保留 12:00 小时的数据。我尝试了这里推荐的一些选项:
#pre-processing to get only required information
data = data[["date_time", "WindGustKmph", "humidity", "precipMM", "pressure", "tempC", "winddirDegree", "windspeedKmph"]]
print(data.head())
print(str(len(data)))
#set proper datatime index and keep only day time weather
dataIndex = pd.DatetimeIndex(data['date_time'].astype(str))
data.index = dataIndex
#filter the data
data.between_time('07:00:00', '21:00:00')
print(data.head())
print(str(len(data)))
结果,我看到添加了一个索引,但没有应用过滤器,我的问题是为什么?
date_time WindGustKmph ... winddirDegree windspeedKmph
0 2018-01-01 0:00 8 ... 21 4
1 2018-01-01 12:00 12 ... 79 10
2 2018-01-02 0:00 14 ... 19 7
3 2018-01-02 12:00 18 ... 57 16
4 2018-01-03 0:00 19 ... 16 9
[5 rows x 8 columns]
2192
date_time ... windspeedKmph
date_time ...
2018-01-01 00:00:00 2018-01-01 0:00 ... 4
2018-01-01 12:00:00 2018-01-01 12:00 ... 10
2018-01-02 00:00:00 2018-01-02 0:00 ... 7
2018-01-02 12:00:00 2018-01-02 12:00 ... 16
2018-01-03 00:00:00 2018-01-03 0:00 ... 9
[5 rows x 8 columns]
2192
另外,我尝试了另一种选择:
data['date_time'] = pd.to_datetime(data['date_time'])
data['hours'] = data['date_time'].dt.hour
data[data['hours'] != 0]
同样的结果。该列已添加但未过滤数据。
date_time WindGustKmph ... windspeedKmph hours
0 2018-01-01 00:00:00 8 ... 4 0
1 2018-01-01 12:00:00 12 ... 10 12
2 2018-01-02 00:00:00 14 ... 7 0
3 2018-01-02 12:00:00 18 ... 16 12
4 2018-01-03 00:00:00 19 ... 9 0
[5 rows x 9 columns]
2192
对于我所缺少的任何建议,我将不胜感激
解决方案
您需要将过滤后的数据集分配回data
:
data = data.between_time('07:00:00', '21:00:00')
或(您的第二个选项)
data = data[data['hours'].between(7, 21)]
推荐阅读
- linux - 如何通过 unix sock 将 haproxy 信息日志发送到 rsyslog?
- c# - 检查网站用户是否在本地网络上。ASP.NET 核心 MVC
- mongodb - 'mongod' 命令不起作用,尽管我将它添加到 PATH
- css - bootstrap 4.3 nav-item selected 无法使底部边框透明
- vuejs2 - Vue2 Mutations 为什么只提交第一个元素?
- gcc - AIX7.2 服务器上的 Apache Thrift 安装失败
- python - AttributeError:“NoneType”对象没有属性“hero_first”
- c - 在 C 中读取文本文件时出现循环问题
- macos - 如何在 swiftUI 生命周期中为三列视图添加工具栏分隔符
- c# - 如何通过拖放将列表视图项从一个列表移动到另一个列表?UWP C#