如何索引 时间类型的索引的Series

Recoding
  • 417
df=pd.read_csv('SH600690.csv',parse_dates=True,header=None,names=names,index_col='date')

days = df.groupby(level = 0).agg({'opening_price':lambda prices: _valid_price(prices) and prices[0] or 0,})

按我的理解prices是df的opening_price列,他是一个Series,索引是datetime类型的,经过测试的确如此
这里price[0]他直接用整数索引,不报错

现在我换一种写法

df=pd.read_csv('SH600690.csv',parse_dates=True,header=None,names=names)
df=df.set_index('date')

发现在price[0]IndexError异常,经过测试price的索引的类型与上面的一致

为什么会这样?

为了方便热心网友测试,给出案例数据

2008/01/02,09:35,22.50,22.63,22.50,22.51,2042.50,4604723.00
2008/01/02,09:40,22.51,22.51,22.29,22.37,1545.17,3460503.00
2008/01/02,09:45,22.39,22.62,22.38,22.62,1744.76,3921443.00
2008/01/02,09:50,22.60,23.00,22.60,22.95,5339.00,12225939.00
2008/01/02,09:55,22.98,23.20,22.89,23.20,12577.73,28947824.00
2008/01/02,10:00,23.25,23.40,23.25,23.26,12710.01,29662336.00
2008/01/02,10:05,23.28,23.28,23.11,23.22,4568.27,10595344.00
2008/01/02,10:10,23.21,23.31,23.21,23.30,6039.24,14058616.00
2008/01/02,10:15,23.31,23.60,23.29,23.59,16750.99,39291400.00

部分代码

names = ['date',
         'time',
         'opening_price',
         'ceiling_price',
         'floor_price',
         'closing_price',
         'volume',
         'amount']
#读取
df=pd.read_csv('SH600690.csv',parse_dates=True,header=None,names=names,index_col='date')
回复
阅读 3.4k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏