2016-08-05 2 views
2

이진 값을 가진 데이터 프레임이 있습니다. 행과 열 이름이 같은 경우 값을 0으로 변경하려고합니다. 가장 쉬운 방법은 무엇입니까?여기서 데이터 프레임의 값을 바꿉니다. 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 

원하는 dataframe :

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 
관련 문제