【发布时间】:2018-09-21 20:33:16
【问题描述】:
我有一个数据框,其日期从 2006 年到 2016 年,每个日期有 7 个对应值。 数据如下:
H PS T RH TD WDIR WSP
date
2006-01-01 11:28:00 38 988.6 0.9 98.0 0.6 120.0 14.4
2006-01-01 11:28:00 46 987.6 0.5 91.0 -0.7 122.0 15.0
2006-01-01 11:28:00 57 986.3 0.5 89.0 -1.1 124.0 15.5
2006-01-01 11:28:00 66 985.1 0.5 90.0 -1.1 126.0 16.0
2006-01-01 11:28:00 74 984.1 0.4 90.0 -1.1 127.0 16.5
2006-01-01 11:28:00 81 983.3 0.4 90.0 -1.1 129.0 17.0
我想为每年选择几列(例如 2006 年的 T 和 RH)。因此,对于 2006 年到 2016 年的每一年,选择一堆列,然后将每个新数据帧写入一个文件中。 我做了以下事情:
df_H_T=(df[['RH','T']])
mask = (df_H_T['date'] >'2016-01-01 00:00:00') & (df_H_T['date'] <='2016-12-31 23:59:59')
df_H_T_2006 =df.loc[mask]
print(df_H_T_2006.head(20))
print(df_H_T_2006.tail(20))
但是不起作用,因为它似乎不知道“日期”是什么,但是当我打印数据框的头部时,日期似乎就在那里。我究竟做错了什么 ?
我的第二个问题是如何将它放在 year 变量的循环中,这样我就不会手动编写每个新数据框并一次选择一年,直到 2016 年? (我是新手,从未在 python 中使用过循环)。 谢谢, 约阿那
【问题讨论】:
-
您必须将日期转换为日期时间对象。否则你不能切片它们。看到这个帖子:stackoverflow.com/questions/32204631/…
-
date是常规列,还是索引?
标签: python loops datetime dataframe