如下的一个 txt 文件,内容如下:
time,tmp,water,light
2019-09-02 03:23:09,28,28,8
2019-09-02 03:24:10,29,29,9
2019-09-02 03:25:11,30,30,10
2019-09-02 03:26:12,31,31,11
2019-09-02 03:27:13,32,32,12
2019-09-02 03:28:14,33,33,13
2019-09-02 03:29:15,34,34,14
2019-09-02 03:30:16,35,35,15
使用逗号来分割每个数据,每一行是一组数据,这些数据是每一分钟新增一条,time 列就是时间,
请问可以通过日期来筛选一条数据吗?
比如需要筛选出:2019-09-02 03:29:15,34,34,14
这条 03:29 分的数据,
请教一下,在 pandas 中时间应该怎么筛选呢?
1
wangkai0351 2019-09-09 18:20:03 +08:00
咱不能读一遍 api 吗
|
2
yulewg 2019-09-09 18:21:31 +08:00
df[df.time=='2019-09-02 03:29:15']
|
3
kayseen OP @yulewg 请问可以只精确到分钟吗?就是不看后面的秒数。因为在筛选的时候,只知道分钟是多少,是不知道秒数的。。
|
4
lithiumii 2019-09-09 18:44:25 +08:00 via Android
先读成 dataframe,pandas 会自动把时间转成 datetime 类型,然后就可以只读分钟了
|
5
hjq98765 2019-09-09 18:54:59 +08:00
@kayseen #3 原文:“@yulewg 请问可以只精确到分钟吗?就是不看后面的秒数。因为在筛选的时候,只知道分钟是多少,是不知道秒数的。。”
====== 回复:df[df.time.map(lambda x:x.startswith('2019-09-02 03:29'))] |
6
kayseen OP @lithiumii 呃呃呃,先 pd.read_csv('a.txt', sep=',', delimiter=None)读取之后,关于 time 的是怎么读的额...
|
7
kayseen OP @hjq98765 感谢感谢,麻烦再问下,关于这个文件,我怎么往里面追加一条数据呢?
比如在后面在追加一条数据 `2019-09-09 03:30:16,35,35,15` 我在网上找了下都是类似先读取文件再追加的,没找到这种追加单条数据的, 请教下,感谢~ |
8
ike 2019-09-09 19:17:55 +08:00
import pandas as pd
df = pd.read_csv("test.txt", parse_dates=['time']) idx = df.time.apply(lambda x: x.hour == 3 and x.minute==29) df[idx] |