Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用fill_diagonal()在pandas.DataFrame的对角线上设置值_Python_Pandas_Numpy_Dataframe - Fatal编程技术网

Python 使用fill_diagonal()在pandas.DataFrame的对角线上设置值

Python 使用fill_diagonal()在pandas.DataFrame的对角线上设置值,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我想在pandas.df中设置数字的值。我跟着答案走了进去 df.values[[np.arange(df.shape[0])]*2]=0的解决方案很好 但我希望使用np.fill_diagonal(df.values,0)这会给出AttributeError:“DataFrame”对象没有属性“flat”我也遇到过这个问题,但当我意识到np.fill_diagonal()时解决了这个问题 np.fill\u diagonal(df,0)给了我您描述的属性错误:并且np.fill\u diago

我想在pandas.df中设置数字的值。我跟着答案走了进去

df.values[[np.arange(df.shape[0])]*2]=0
的解决方案很好


但我希望使用
np.fill_diagonal(df.values,0)
这会给出AttributeError:“DataFrame”对象没有属性“flat”

我也遇到过这个问题,但当我意识到
np.fill_diagonal()
时解决了这个问题

np.fill\u diagonal(df,0)
给了我您描述的
属性错误:
并且
np.fill\u 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))
,你的pandas版本是什么?0.22.0,我将尝试升级,看看它是否解决了问题。我只是检查了链接的解决方案,并在2014年工作,所以问题是其他的:(我无法升级到pandas 0.23.4,因为我不是这台计算机的管理员。Pyton3只安装在我的用户上,而不是作为管理员安装,这会导致问题吗?尝试使用您的示例数据
df=pd.DataFrame(np.random.rand(5,5))
,我仍然收到该错误