Python中文
首页
教程
问答
标签
搜索
登录
注册
Pandas数据帧日期时间筛选器不工作
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在学习如何使用pandas dataframe并尝试预处理一些数据。我有一组显示天气的数据,数据时间字段是一个字符串。每天在此数据集中显示两次,分别为00:00和12:00。我正在尝试过滤它,并只保留12:00小时的数据。我尝试了一些建议的选项<a href="https://stackoverflow.com/questions/57151142/how-to-drop-rows-based-on-timestamp-where-hours-are-not-in-list">here</a>:</p> <pre><code>#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))) </code></pre> <p>结果,我看到添加了索引,但没有应用过滤器,我的问题是为什么</p> <pre><code> 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 </code></pre> <p>此外,我尝试了另一种选择:</p> <pre><code>data['date_time'] = pd.to_datetime(data['date_time']) data['hours'] = data['date_time'].dt.hour data[data['hours'] != 0] </code></pre> <p>同样的结果。已添加列,但未筛选数据</p> <pre><code> 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 </code></pre> <p>如果您能给我一些建议,我将不胜感激</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您需要将筛选后的数据集分配回<code>data</code>:</p> <pre><code>data = data.between_time('07:00:00', '21:00:00') </code></pre> <p>或者(你的第二选择)</p> <pre><code>data = data[data['hours'].between(7, 21)] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
6 回答
无法使用Django\u mssql\u后端迁移到外部hos
7 回答
无法使用Django&Python3.4连接到MySql
10 回答
无法使用Django+nginx上载媒体文件
6 回答
无法使用Django1.6导入名称模式
1 回答
无法使用Django1.7和mongodb登录管理站点
3 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
9 回答
无法使用Djangockedi验证CBV中的字段
2 回答
无法使用Djangocketditor上载图像(错误400)
9 回答
无法使用Djangocron进行函数调用
1 回答
无法使用Djangofiler djang上载文件
7 回答
无法使用Djangokronos
2 回答
无法使用Djangomssql provid
6 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
8 回答
无法使用Djangomssq迁移Django数据库
9 回答
无法使用Djangonox创建用户
3 回答
无法使用Djangopyodb从Django查询SQL Server
8 回答
无法使用Djangopython3ldap连接到ldap
7 回答
无法使用Djangoredis连接到redis
4 回答
无法使用Django中的FK创建新表
6 回答