Я применяю некоторую обработку, такую как замена матричного элемента от одного значения индекса матрицы к другому. он отлично работает.IndexError: индекс 1 за пределами оси 1 с размером 1
ds1 = [[ 4, 13, 6, 9],
[ 7, 12, 5, 7],
[ 7, 0, 4, 22],
[ 9, 8, 12, 0]]
ds2 = [[ 4, 1],
[ 5, 3],
[ 6, 1],
[ 7, 2],
[ 4, 1 ],
[ 8, 2],
[ 9, 3],
[12, 1],
[13, 2],
[22, 3]]
ds1= pd.DataFrame(ds1)
ds2= pd.DataFrame(ds2)
#Processing ds1 by replacing
print type(ds2)
ds2 = ds2.groupby(0).mean() #.........X
print type(ds2)
C = np.where(ds1.values.ravel()[:, None] == ds2.values[:, 0])
ds1_new = ds1.values.ravel()
ds1_new[C[0]]=ds2.values[C[1], 1] #when I comment line x, it works.Otherwise getting error on this line
ds1_new = ds1_new.reshape(4,4)
Причина за использованием ds2 = ds2.groupby(0).mean()
получает среднее значение подобных элементов. Когда я раскомментирую его, он работает без ошибок.
Версия
Python 2.7.3
numpy - 1.9.2
pandas - 0.15.2
Редактировать
Моя главная цель состоит в том, чтобы соответствовать значению индекса из ds2
в ds1
и заменить его соответствующим значением, так что результат будет выглядеть
ds1_new = [[ 1, 2, 1, 3],
[ 2, 1, 3, 2],
[ 2, 0, 1, 3],
[ 3, 2, 1, 0]]
У меня нет ошибок при запуске вашего кода – EdChum
@EdChum: Я обновил свою версию, может ли это быть из-за версии? – nlper
Это не такая старая версия, в основном вы назначаете именованную ссылку, поэтому не имеет значения, что делает эта группа, она не вызывает ошибки – EdChum