熊猫多重索引,分层索引

时间:2020-04-16 08:00:20

标签: python python-3.x pandas multi-index

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

感谢您指出我出了问题的地方。

谢谢 斯里坎特

0 个答案:

没有答案