我有一个带有以下索引的数据框:

index = pd.MultiIndex.from_product([['stock1','stock2'...],['price','volume'...]])

这是一个有用的 struct ,可以做df['stock1'],但我如何 Select 所有的价格数据?我搞不懂这些文件.

我试过以下方法但没有成功:df[:,'price'] df[:]['price'] df.loc(axis=1)[:,'close'] df['price]

如果无论出于何种原因,人们普遍认为这种索引样式是个坏主意,那么什么是更好的 Select 呢?我应该 Select 一个多指数指数作为时间序列的标签,而不是列级的标签吗?

非常感谢

编辑——我使用的是列的多重索引,而不是索引(措辞占了我的上风).文档中的示例侧重于多级索引,而不是列 struct .

推荐答案

同样使用John的数据样本:

使用xs()是切片MultiIndex的另一种方法:

df
               0
stock1 price   1
       volume  2
stock2 price   3
       volume  4
stock3 price   5
       volume  6

df.xs('price', level=1, drop_level=False)
              0
stock1 price  1
stock2 price  3
stock3 price  5

或者,如果列的位置为MultiIndex:

df
  stock1        stock2        stock3       
   price volume  price volume  price volume
0      1      2      3      4      5      6

df.xs('price', axis=1, level=1, drop_level=False)
  stock1 stock2 stock3
   price  price  price
0      1      3      5

Python-3.x相关问答推荐

Pyvis和Networkx:如何根据源或目标使 node colored颜色 不同

为什么我在BLE中的广告代码在发送包裹之间需要大约1秒

Python-Django 设置 Pandas DataFrame 的多索引不会分组/合并最后一个索引

如何使用python将pdf文件的页面合并为单个垂直组合页面

匹配语句NaN

从 LeetCode 的 Python 解决方案类中理解关键字 self

隐藏Cartopy中高纬度非矩形投影的右侧轴(纬度)标签

我正在使用 python 线程,当查询 mysql 时,代码似乎在运行并保持在无限循环中,没有返回任何错误

如何键入提示函数,在 Python 中通过类decorator 添加到类中

单击图形时 plotly graph_objects 持久性数据

如何对具有多个列值的 pandas 数据框进行数据透视/数据透视表

Einsum 对于张量乘法很慢

使用 from re findall 组合连续匹配并分离非连续匹配

try 注释散列变量时,ABCMeta对象不可下标

如何将numpy数组图像转换为字节?

无论如何我可以在 Google colaboratory 中下载文件吗?

如何正确创建自定义文本编解码器?

如何避免使用我的 python 包构建 C 库?

Python,Docker - ascii编解码器无法编码字符

注册 Celery 基于类的任务