簡體   English   中英

Python熊貓數據框獲取NaN而不是值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM