2016-08-05 109 views
2

我有一個二進制值的數據幀。我想將值更改爲零,其中行和列名稱相同。什麼是最簡單的方法來做到這一點?在這裏替換數據幀中的值rowname等於列名

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 
+1

我的實際數據幀沒有同一個序列中的行和列。亞歷山大的解決方案對我更好。 – Rtut

回答

2

您可以通過列循環和相應的行(或多個)設置爲零使用loc

for col in mydf: 
    mydf.loc[col, col] = 0