我的数据框有很多天的时间戳索引和一列数据。我想检索特定日期的数据。
raw_df =
Temp
TIMESTAMP
2015-01-01 09:50:00-05:00 0.064
2015-01-01 09:51:00-05:00 0.236
2015-01-01 09:52:00-05:00 0.268
2015-01-01 09:53:00-05:00 0.072
2015-01-01 10:07:00-05:00 0.059
2015-01-02 10:08:00-05:00 0.189
2015-01-02 10:09:00-05:00 0.198
2015-01-02 10:10:00-05:00 0.258
2015-01-02 10:11:00-05:00 0.587
2015-01-03 10:12:00-05:00 0.780
2015-01-03 10:13:00-05:00 0.990
2015-01-03 10:14:00-05:00 1.022
2015-01-03 10:15:00-05:00 1.275
2015-01-04 10:16:00-05:00 1.256
2015-01-04 10:17:00-05:00 1.255
2015-01-04 10:18:00-05:00 1.254
2015-01-04 10:19:00-05:00 1.305
2015-01-04 10:20:00-05:00 1.347
2015-01-04 10:21:00-05:00 1.434
2015-01-05 10:22:00-05:00 1.397
我想提取2015年1月4日的数据,下面给出我的代码
i = 2015-01-04
raw_df['Temp'].loc[i]
但这会导致错误
SyntaxError: invalid token
答案 0 :(得分:2)
有很多选项,但是所有这些选项都需要弥合datetime索引和日期字符串之间的差距。
# df[df.index.tz_localize(None).floor('D') == '2015-01-04']
df[df.index.floor('D') == '2015-01-04']
# Or,
df[df.index.normalize() == '2015-01-04']
或者,仅选择“温度”,请使用loc
:
df.loc[df.index.floor('D') == '2015-01-04', 'Temp']
TIMESTAMP
2015-01-04 10:16:00-05:00 1.256
2015-01-04 10:17:00-05:00 1.255
2015-01-04 10:18:00-05:00 1.254
2015-01-04 10:19:00-05:00 1.305
2015-01-04 10:20:00-05:00 1.347
2015-01-04 10:21:00-05:00 1.434
Name: Temp, dtype: float64
Index.get_loc
切片# df.iloc[df.index.get_loc('2015-01-04')]
df.iloc[df.index.get_loc('2015-01-04'), df.columns.get_loc('Temp')]
TIMESTAMP
2015-01-04 10:16:00-05:00 1.256
2015-01-04 10:17:00-05:00 1.255
2015-01-04 10:18:00-05:00 1.254
2015-01-04 10:19:00-05:00 1.305
2015-01-04 10:20:00-05:00 1.347
2015-01-04 10:21:00-05:00 1.434
Name: Temp, dtype: float64