[英]Python pandas dataframe getting NaN instead of values
我有一個很大的數據集,其中多個列具有NaN值。 我用python pandas
分別用均值替換了幾列中的缺失值,其余部分用中位數替換了。 我擺脫了所有的NaN值,並將結果數據框寫入了一個新文件。
現在,當我再次讀取新文件時,它包含NaN而不是值。 我無法弄清楚為什么會這樣。 下面是我的代碼供參考:
df = pd.DataFrame.from_csv('temp_train.csv',header=0)
df.prop_review_score=df.prop_review_score.fillna(0)
mean_score_2 = np.mean(df.prop_location_score2)
df.prop_location_score2 = df.prop_location_score2.fillna(mean_score_2)
median_search_query = np.median(df.srch_query_affinity_score)
df.srch_query_affinity_score = df.srch_query_affinity_score.fillna(median_search_query)
median_orig_distance = np.median(df.orig_destination_distance)
df.orig_destination_distance = df.orig_destination_distance.fillna(median_orig_distance)
df.to_csv('final_train_data.csv')
現在在另一個腳本中,當我輸入以下內容時,我在srch_query_affinity_score
獲得NaNs
df = pd.DataFrame.from_csv('final_train_data.csv',header=0)
print df
我建議在數據幀上使用pandas.DataFrame.median
而不是numpy.median
。
對我來說,這是一個快速測試(如伍迪建議,當數據中存在NaN時):
df = pd.DataFrame({'x':[10,pd.np.NAN,np.NAN,20]}) df.x.median() # returns 20.0 np.median(df.x) # returns NaN
因此,請考慮更換:
median_search_query = np.median(df.srch_query_affinity_score)
與中median_search_query = df.srch_query_affinity_score.median()
為了確保在轉到csv之前執行以下操作:
assert df.srch_query_affinity_score.isnull().sum() == 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.