我目前正在學習熊貓,我正在使用 imdb 電影資料庫,其中一列是電影的持續時間。但是,其中一個值是“無”,所以我無法計算平均值,因為中間有這個字串。我想將“無”更改為 = 0,但這會扭曲結果。可以通過下面的代碼看到。
dur_temp = duration.replace("None", 0)
dur_temp = dur_temp.astype(float)
descricao_duration = dur_temp.mean()
關于我應該怎么做才能不歪曲資料的任何想法?我還繪制了它,它是如何扭曲它變得更加清晰。
uj5u.com熱心網友回復:
您可以將“無”替換為numpy.nan,而不是使用 0。
像這樣的事情應該可以解決問題:
import numpy as np
dur_temp = duration.replace("None", np.nan)
descricao_duration = dur_temp.mean()
uj5u.com熱心網友回復:
如果您希望它適用于您的熊貓系列中的任何字串,您可以使用pd.to_numeric:
pd.to_numeric(dur_temp, errors='coerce').mean()
這樣所有不能轉換為float的值都會被替換掉,NaN不管是哪個
uj5u.com熱心網友回復:
只需按這樣的條件過濾
df[df['a']!='None'] #assuming your mean values are in column a
uj5u.com熱心網友回復:
使它們 np.NAN 值
我寫它作為答案,因為我不能評論 df = df.replace('None ', np.NaN) 或 df.replace('None', np.NaN, inplace=True)
uj5u.com熱心網友回復:
您可以使用fillna(value=np.nan)如下所示:
descricao_duration = dur_temp.fillna(value=np.nan).mean()
演示:
import pandas as pd
import numpy as np
dur_temp = pd.DataFrame({'duration': [10, 20, None, 15, None]})
descricao_duration = dur_temp.fillna(value=np.nan).mean()
print(descricao_duration)
輸出:
duration 15.0
dtype: float64
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343399.html
