This question already has an answer here:
Pandas Dataframe, change values on “diagonal” (where index-value is equal to column-name)
(1个答案)
3年前关闭。
我有一个带有二进制值的数据框。我想将行和列名称相同的值更改为零。最简单的方法是什么?
所需的数据框:
(1个答案)
3年前关闭。
我有一个带有二进制值的数据框。我想将行和列名称相同的值更改为零。最简单的方法是什么?
tmp_dict= {'x':[0,0,0,0,0],'y':[1,0,1,0,0],'z':[1,1,1,1,1],'p':[0,1,1,0,1],'q':[0,1,1,1,1]}
mydf= pd.DataFrame(tmp_dict, columns=['x','y','z','p','q'], index=['x','y','z','p','q'])
mydf
x y z p q
x 0 1 1 0 0
y 0 0 1 1 1
z 0 1 1 1 1
p 0 0 1 0 1
q 0 0 1 1 1
所需的数据框:
x y z p q
x 0 1 1 0 0
y 0 0 1 1 1
z 0 1 0 1 1
p 0 0 1 0 1
q 0 0 1 1 0
最佳答案
您可以循环浏览各列,并使用loc
将相应的行设置为零。
for col in mydf:
mydf.loc[col, col] = 0
关于python - 在这里替换数据框中的值,行名等于列名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38794169/
10-16 18:22