각 행의 마지막 열에있는 값에 대해 데이터 프레임의 0 값을 변경하고 싶습니다. 나는 열 또는 행에 for를 사용하여이 문제를 해결할 수 있지만 나에게 너무 파이썬적인 것처럼 보이지는 않는다. 한마디로조건부로 데이터 프레임의 다른 열에서 값을 할당하십시오.
,이 같은 dataframe이 : 내가 얻을 것
col1 col2 col3 nonzero
1 2 0 10
1 0 3 20
을 나는
df[df==0] = df.nonzero
같은 작업을 수행하고 싶습니다
col1 col2 col3 nonzero
1 2 10 10
1 20 3 20
그러나 [df == 0]은 True/False 값을 가진 DataFrame 자체이므로이 방법은 효과가 없습니다. 어떻게 할 수 있습니까?
df.apply(lambda row: row.where(row != 0, row.iat[-1]), axis=1)
당신은 또한에 데이터 프레임을 수정할 수 있습니다
는 안양 == 0.mul 솔루션은 잘 작동하지만, 적용 방법은 준의 나 오류 '객체 유형 클래스에 대해 축 1이 없습니다. 인덱스 col1에서이 발생했습니다. –
'axis' 매개 변수를 올바르게 배치하지 않았을 수 있습니다.'df'가 'where' 대신'apply' 메소드의 매개 변수로 사용됩니다. 데이터 프레임, Series 객체가 아닙니다. – Psidom
실제로. 아주 멋진 솔루션 –