可能以前被问过,但找不到适合我的答案。
我有一个相当大的数组,由3个唯一的类名组成。我正在尝试基于索引值创建3个新数组。使用费舍尔的鸢尾花数据集(由于它较小且在测试中有用),我尝试使用以下代码:
iris_ds.set_index("Class")
iris_SA = iris_ds.drop("Iris-versicolor", axis=0)
iris_SA = iris_SA.drop("Iris-virginica", axis=0)
但是,当我运行它时,出现以下错误:
回溯(最近通话最近):
在第18行的文件“ AAA.py”中 iris_SA = iris_ds.drop(“ Iris-versicolor”,axis = 0)文件“ C:..... \ Anaconda3 \ lib \ site-packages \ pandas \ core \ frame.py”,行 3940,在下降 错误=错误)文件“ C:..... \ Anaconda3 \ lib \ site-packages \ pandas \ core \ generic.py”,行 3780,在下降 obj = obj._drop_axis(标签,轴,级别=级别,错误=错误)
文件“ C:..... \ Anaconda3 \ lib \ site-packages \ pandas \ core \ generic.py”, 第3812行,在_drop_axis中 new_axis = axis.drop(labels,errors = errors)
文件“ C:..... \ Anaconda3 \ lib \ site-packages \ pandas \ core \ indexes \ base.py”, 行4965,在下降中 '{}未在轴中找到。'。format(labels [mask]))KeyError:“ [['Iris-versicolor']在轴中未找到”
有关如何解决的任何建议?
答案 0 :(得分:1)
检查以确保您重新分配了set_index
语句,set_index
不是就地语句。
iris_ds = iris_ds.set_index("Class")
或
iris_ds.set_index("Class", inplace=True)
答案 1 :(得分:1)
除了提及问题之外,我还可以提及一个名为"id" "a1" "b1" "c1" "not_relevant" "p_a1" "p_b1" "p_c1" "total"
a 2 6 0 x 2 19 12 118.0
a 4 2 7 x 3.5 7 11 105.0
b 1 9 4 x 7 1.5 4 36.5
b 7 5 11 x 8 12 5 171.0
的奇妙工具:
df.groupby()
输出:
df = pd.DataFrame({
'class':['a']*2+['b']*3+['c']*3,
'other': np.arange(11,99,11),
})
print(df, '\n\nafter groupby:\n\n')
for classname, classdf in df.groupby('class'):
print('classname:\n', classname, '\nclassdf:\n', classdf, sep='', end='\n=====\n')