표준 정규 분포에서 오는 값으로 데이터 프레임의 NaN 값을 채우려고합니다.Python Pandas Dataframe NaN 값 채우기
sqlStatement = "select * from sn.clustering_normalized_dataset"
df = psql.frame_query(sqlStatement, cnx)
data=df.pivot("user","phrase","tfw")
dfrand = pd.DataFrame(data=np.random.randn(data.shape[0],data.shape[1]))
data[np.isnan(data)] = dfrand[np.isnan(data)]
가 그렇게 보이는 dataframe '데이터'를 선회 후 :
phrase aaron abbas abdul abe able abroad abu abuse \
user
14233664 NaN NaN NaN NaN NaN NaN NaN NaN
52602716 NaN NaN NaN NaN NaN NaN NaN NaN
123456789 NaN NaN NaN NaN NaN NaN NaN NaN
500158258 NaN NaN NaN NaN NaN NaN NaN NaN
517187571 0.4 NaN NaN 0.142857 1 0.4 0.181818 NaN
는 그러나, 나는 각각의 NaN 값은 새로운 임의의 값으로 대체됩니다 필요 이 현재 나의 코드입니다. 그래서 새로운 df를 임의의 값 (dfrand)만으로 구성한 다음 누락 된 숫자 (Nan)를 NaN의 인덱스에 해당하는 dfrand의 값으로 교체하려고했습니다. 글쎄 - 불행히도 작동하지 않습니다 - 을
np.isnan(data)
가 dataframe을 반환
이 True와 False 값으로 구성 표현, 표현하지만dfrand[np.isnan(data)]
반환에만 NaN의 값을 전체 트릭을하지 않도록 작업. 어떤 아이디어가 문제입니까?
모든 열을 스캔해야하는 경우 어떻게해야합니까? 첫 번째와 세 번째 문장에 매개 변수로 무엇을 전달합니까? – user4045430
그냥 반복합니다. 'for data.columns : ... ' – acushner
나는 3000 개 이상의 칼럼을 가지고있다. 어쩌면 더 빠른 방법이 있을까요? – user4045430