Установите значения по диагонали pandas.DataFrame с помощью fill_diagonal ()

1

Я хочу установить значения digonal в pandas.df. Я выполнил ответ в Set Set на диагонали pandas.DataFrame

Решение df.values[[np.arange(df.shape[0])] * 2] = 0 отлично работает.

Но я хочу использовать np.fill_diagonal(df.values, 0) который дает AttributeError: объект DataFrame не имеет атрибута 'flat'

  • 0
    Для меня это хорошо работает с df = pd.DataFrame(np.random.rand(5,5)) данных df = pd.DataFrame(np.random.rand(5,5)) , какая у вас версия для панд?
  • 0
    0.22.0, попробую обновить и посмотреть, решит ли это проблему
Показать ещё 4 комментария
Теги:
pandas
dataframe
numpy

1 ответ

0

У меня тоже была эта проблема, но я решил ее, когда понял, что np.fill_diagonal() работает на месте.

np.fill_diagonal(df,0) дал мне AttributeError: вы описали, а np.fill_diagonal(df.values,0) возвращает None так что если вы делаете что-то вроде:

df_zeros = np.fill_diagonal(df.values,0)
print(df_zeros)

или попробуйте использовать результат в другом месте, он не будет работать, но если вы это сделаете:

np.fill_diagonal(df.values,0)
print(df)

Я думаю, вы увидите, что вы ищете.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню