Я хочу установить значения 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'
У меня тоже была эта проблема, но я решил ее, когда понял, что 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)
Я думаю, вы увидите, что вы ищете.
df = pd.DataFrame(np.random.rand(5,5))
данныхdf = pd.DataFrame(np.random.rand(5,5))
, какая у вас версия для панд?