我遇到了一个问题,这就是没有意义。我有一个大的pd.DataFrame
,我缩小了它的大小,这样我就可以很容易地在一个示例中显示它(称为test1
):
>>> print(test1)
value TIME \
star 0 1 2 3 4
0 1952.205873 1952.205873 1952.205873 1952.205873 1952.205873
1 1952.226307 1952.226307 1952.226307 1952.226307 1952.226307
2 1952.246740 1952.246740 1952.246740 1952.246740 1952.246740
3 1952.267174 1952.267174 1952.267174 1952.267174 1952.267174
value CNTS \
star 5 0 1 2
0 1952.205873 575311.432228 534103.079080 179471.239561
1 1952.226307 571480.854183 533138.021051 187456.451900
2 1952.246740 555631.798095 530263.846685 203247.734806
3 1952.267174 553639.056784 527058.335157 210088.229427
value
star 3 4 5
0 121884.201457 39003.397835 2089.321993
1 122796.312201 39552.401359 2810.010142
2 123500.068304 39158.050385 2652.409086
3 124357.387418 38881.565235 2721.908129
我想对它执行切片索引。但是它似乎不起作用。以下是我的尝试:
^{pr2}$我得到一个错误:
*** KeyError: 'MultiIndex Slicing requires the index to be fully lexsorted tuple len (2), lexsort depth (0)'
这已经不是我第一次犯这个错误或者问这个问题了,但是我还是不知道该怎么解决它,也不知道出了什么问题。在
更令人困惑的是,以下代码似乎可以顺利地工作:
import pandas as pd
import numpy as np
column_values = ['TIME', 'XPOS']
target = range(0,2)
mindex = pd.MultiIndex.from_product([column_values, target], names=['value', 'target'])
df = pd.DataFrame(columns=mindex, index=range(10), dtype=float)
print(df.loc[:,(slice(None),0)])
我只是不明白发生了什么事,这里出了什么问题。在
只需按^{} 对列中的
MultiIndex
排序:您也可以选中docs - sorting a multiindex。在
示例(列不是lexsorted):
^{pr2}$相关问题 更多 >
编程相关推荐