Standart bir normal dağılımdan gelen değerlerle bir veri çerçevesindeki NaN değerlerini doldurmaya çalışıyorum.Python Pandas Dataframe doldurma NaN değerleri
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)]
öyle gibi gözüküyor dataframe 'veri' dönme sonra::
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
Ancak, ben her NaN değeri yeni bir rastgele değerle değiştirilecektir Buna ihtiyacım Bu, şu anda benim kodudur. Bu yüzden yeni bir df yarattım, sadece rastgele değerler (dfrand) ve sonra da eksik sayıları (Nan), NaN'lerin indislerine karşılık gelen dfrand değerleri ile değiştirmeye çalıştım. Eh - ne yazık ki çalışmıyor -
np.isnan(data)
bir dataframe döndürür
True ve False değerlerinden oluşur ifadesi, ifade rağmendfrand[np.isnan(data)]
dönüş sadece NaN değerleri genel hile yapmaz böylece iş. Sorun hakkında herhangi bir fikrin var mı?
TÜM sütunları taramam gerekirse ne olur? İlk ve üçüncü ifadeye ne parametre olarak geçebilirim? – user4045430
sadece yineleyin. data.columns içinde c için: ... ' – acushner
Ben 3000'den fazla sütun var. Belki daha hızlı bir yol var mı? – user4045430