import pandas as pd
df=pd.read_csv('<https://gist.githubusercontent.com/justmarkham/19241df07db2b93283fbb0cfe9c572f9/raw/f70931bd9f25c560b330f017f6933073c442c7ed/stocks.csv>')
df2=df.set_index(['Symbol','Date'])
df2.sort_index(inplace=True)
print(df2)
s = df.loc[ ('AAPL','2016-10-05') :('MSFT','2016-10-03') ]
print(s)
我的数据框如下:
Close Volume
Symbol Date
AAPL 2016-10-03 112.52 21701800
2016-10-04 113.00 29736800
2016-10-05 113.05 21453100
CSCO 2016-10-03 31.50 14070500
2016-10-04 31.35 18460400
2016-10-05 31.59 11808600
MSFT 2016-10-03 57.42 19189500
2016-10-04 57.24 20085900
2016-10-05 57.64 16726400
我有以下2个问题。
1)我的要求是从APL的最后一行(即日期='2016-10-05')到MSFT的第一行(即日期='2016-10-03')获取数据。>
我写了下面的代码
df.loc [('AAPL','2016-10-05'):('MSFT','2016-10-03')]
但是,我遇到了错误:AssertionError:起始切片边界是非标量的。
**注意:我的上述代码与文档示例内联:来自here的In [44]。
2)在第二种情况下,我希望数据从CSCO的中间行(即2016年10月4日)到数据帧的末尾(即MSFT的所有行),只有列:Volume
感谢您指出我出了问题的地方。
谢谢 斯里坎特