
如下的一个 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] |