您可以使用multiIndex来为多个列指定每个级别的名称。用于
MultiIndex.from_product()从多个可迭代的笛卡尔乘积中生成multiIndex。
header = pd.MultiIndex.from_product([['location1','location2'], ['S1','S2','S3']], names=['loc','S'])df = pd.Dataframe(np.random.randn(5, 6), index=['a','b','c','d','e'], columns=header)
loc和S两个级别。
dfloc location1 location2 S S1 S2 S3 S1 S2 S3a -1.245988 0.858071 -1.433669 0.105300 -0.630531 -0.148113b 1.132016 0.318813 0.949564 -0.349722 -0.904325 0.443206c -0.017991 0.032925 0.274248 0.326454 -0.108982 0.567472d 2.363533 -1.676141 0.562893 0.967338 -1.071719 -0.321113e 1.921324 0.110705 0.023244 -0.432196 0.172972 -0.50368
现在,您可以使用xs根据级别对日期框架进行切片。
df.xs('location1',level='loc',axis=1)S S1 S2 S3a -1.245988 0.858071 -1.433669b 1.132016 0.318813 0.949564c -0.017991 0.032925 0.274248d 2.363533 -1.676141 0.562893e 1.921324 0.110705 0.02324df.xs('S1',level='S',axis=1)loc location1 location2a -1.245988 0.105300b 1.132016 -0.349722c -0.017991 0.326454d 2.363533 0.967338e 1.921324 -0.43219


