我有一个pandas DataFrame,其中索引是列的子集,即索引中的每个值也是一列名称,并且还有其他列,类似于这样:
我现在想将“对角线”项设置为一个固定值,比如0.0。所谓的“对角线”是指索引值与列名匹配的那些条目。我可以通过迭代索引并在该循环内将每个“对角线”条目设置为0.0来实现。
但是我想知道是否有更符合Python风格的方法,即可能实现这一点的向量化方法。我想必须有类似于
import pandas as pd
import numpy as np
df = pd.DataFrame(index=['John', 'Mary', 'Steven'],
columns=['John','Susan','Steven','Chris','Mary'],
data=np.arange(15).reshape(3,5))
我现在想将“对角线”项设置为一个固定值,比如0.0。所谓的“对角线”是指索引值与列名匹配的那些条目。我可以通过迭代索引并在该循环内将每个“对角线”条目设置为0.0来实现。
for i in df.index:
df.loc[i, i] = 0.0
但是我想知道是否有更符合Python风格的方法,即可能实现这一点的向量化方法。我想必须有类似于
df.loc[df.index, df.index] = 0.0
的东西,但它并不产生所需的结果。