熊猫系列多索引错误

时间:2017-10-17 03:17:10

标签: pandas series multi-index

我正在尝试切入多索引数据框。我对生成IndexingError: Too many indexers的条件感到困惑。我也持怀疑态度,因为我发现了一些关于这个问题的错误报告。 具体来说,这会产生错误:

idx1 = [str(elem) for elem in [5, 6, 7, 8]]
idx2 = [str(elem) for elem in [10, 20, 30]]
index = pd.MultiIndex.from_product([idx1, idx2], names=('idx1', 'idx2'))
columns = ['m1', 'm2', 'm3']
df = pd.DataFrame(index=index, columns= columns)
df['m1'].loc[:,10]

上面的代码试图索引到str的dtypes索引,用int,在我看来。错误让我失望,因为我不明白为什么它说太多的索引器。

以下代码有效:

idx1 = [5, 6, 7, 8]
idx2 = [10, 20, 30]
index = pd.MultiIndex.from_product([idx1, idx2], names=('idx1', 'idx2'))
columns = ['m1', 'm2', 'm3']
df = pd.DataFrame(index=index, columns= columns)
df.loc[5,10] = [1,2,3]
df.loc[6,10] = [4,5,6]
df.loc[7,10] = [7,8,9]
type(df2['m1'])
df['m1'].loc[:,10]

有一些引用相同的错误:https://github.com/pandas-dev/pandas/issues/13597标记为已关闭且https://github.com/pandas-dev/pandas/issues/14885已打开。 如上面的行中那样切片(多索引系列)是否可以,假设我得到了正确的dtype?另外"Too many indexers" with DataFrame.loc

我的熊猫版本是20.3。

0 个答案:

没有答案