![](/img/trans.png)
[英]pandas: fillna(method="pad") "NaN" values but not "None"
[英]Pandas fillna: Output still has NaN values
我在熊貓身上遇到了一個奇怪的問題。 我有一個具有幾個NaN
值的Dataframe。 我以為我可以使用列方式填充那些NaN
值(也就是說,用其列的平均值填充每個NaN
值)但是當我嘗試以下時
col_means = mydf.apply(np.mean, 0)
mydf = mydf.fillna(value=col_means)
我仍然看到一些NaN
值。 為什么?
是因為我的原始數據col_means
NaN
值比col_means
條目col_means
嗎? 而且逐行填充與逐行填充之間究竟有什么區別?
你可以只fillna
與df.mean()
系列(這是類似字典的):
In [11]: df = pd.DataFrame([[1, np.nan], [np.nan, 4], [5, 6]])
In [12]: df
Out[12]:
0 1
0 1 NaN
1 NaN 4
2 5 6
In [13]: df.fillna(df.mean())
Out[13]:
0 1
0 1 5
1 3 4
2 5 6
注意: df.mean()
是行方式,它給出了填充值:
In [14]: df.mean()
Out[14]:
0 3
1 5
dtype: float64
注意:如果df.mean()
有一些NaN值,那么這些將在DataFrame的fillna中使用,也許你想在這個系列上使用fillna
ie
df.mean().fillna(0)
df.fillna(df.mean().fillna(0))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.