Python:使用Datetime索引在Pandas中建立索引

Python:使用Datetime索引在Pandas中建立索引,python,pandas,dataframe,datetime,indexing,Python,Pandas,Dataframe,Datetime,Indexing,我在熊猫索引方面遇到了一些问题,希望您能帮助我: rng=pd.日期范围('2015-12-31 21:00:00',周期=7,频率=H') df=pd.DataFrame({'Val':np.random.randn(len(rng))},index=rng) 第一年的第一个价值=df['2016'].第一个('1H').指数 将年份的第一个值作为DatetimeIndex返回: DatetimeIndex(['2016-01-01'],dtype='datetime64[ns]',freq

我在熊猫索引方面遇到了一些问题,希望您能帮助我:

rng=pd.日期范围('2015-12-31 21:00:00',周期=7,频率=H')
df=pd.DataFrame({'Val':np.random.randn(len(rng))},index=rng)
第一年的第一个价值=df['2016'].第一个('1H').指数
将年份的第一个值作为DatetimeIndex返回:

DatetimeIndex(['2016-01-01'],dtype='datetime64[ns]',freq='H')
当我使用此索引调用dataframe时,一切似乎都正常工作:

df.loc[第一年价值]
返回

+------------------------+-----------+
|                        |  Val      |
+------------------------+-----------+
| 2016-01-01             | 0.144044  |
所以,到这里一切都很好! 但是,如果我想得到所有大于此值的值,它将不再起作用:

df.loc[df.index>=年度第一个值]
并给出ValueError(长度必须匹配):

但是,如果我使用时间戳本身作为字符串的相同命令,它将执行它应该执行的操作

df.loc[df.index>='2016-01-01 00:00:00']
返回

+------------------------+-----------+
|                        |  Val      |
+------------------------+-----------+
| 2016-01-01 01:00:00    | 1.454274  |
| 2016-01-01 02:00:00    | 0.761038  |
| 2016-01-01 03:00:00    | 0.121675  |
那么,我错过了什么?如何正确访问大于DatetimeIndex变量的所有值


谢谢

我相信您需要通过索引将索引的第一个值选择为标量-
[0]

df.loc[df.index >= first_value_of_year[0]]

我不明白它是否按照你想要的方式工作?此外,在方括号内打印变量的类型可能会给您一个提示,例如打印(类型(df.index>=第一个\u值\u年)),非常感谢。。。已为此花费了2个多小时:-)