![](/img/trans.png)
[英]How to return the mean value of the corresponding column in a pandas DataFrame using fillna
[英]Pandas how to fillna in place on a column?
運行后:
df[['column']].fillna(value=myValue, inplace=True)
要么:
df['column'].fillna(value=myValue, inplace=True)
要么:
# Throws warning "A value is trying to be set on a copy of a slice..."
df.fillna({'column': myValue}, inplace=True)
要么:
df[['column']] = df[['column']].fillna({'column': myValue})
要么:
df['column'] = df['column'].fillna({'column': myValue})
我的df['column']
仍然包含nan
(!)
list(df['column'].unique())
返回['a', 'b', 'c', 'd', nan]
並且sum(pd.isnull(df['column']))
返回1,000 +。
我嘗試了幾種變體,但此問題仍然存在。 您如何在大熊貓的某列上填充?
Ed Chum的評論正確地指出了您所建議的方法之間的差異。 這是我用來顯示其工作原理的示例。
import pandas as pd
import numpy as np
d = {'col1': [1, 2, 3, 4], 'col2': [3, 4, np.nan, np.nan]}
df = pd.DataFrame(data=d)
df
col1 col2
0 1 3.0
1 2 4.0
2 3 NaN
3 4 NaN
df['col2'].fillna(value=6, inplace=True)
col1 col2
0 1 3.0
1 2 4.0
2 3 6.0
3 4 6.0
發布此內容后,我認為查看my_value
變量的值和數據my_value
的外觀是最有價值的。
我放棄了Aditya的假設。 如果nan是一個字符串,它會出現在引號之間,而不會出現。
希望這可以幫助!
造成此問題的一個原因可能是數據集中的nan值可能是字符串“ nan”而不是NaN。 要解決此問題,可以使用replace()方法代替fillna()。
例如代碼:
df['column'].replace(to_replace='nan',value=myValue,inplace=True)
首先,您列表中的正確語法是
df['column'].fillna(value=myValue, inplace=True)
如果list(df['column'].unique())
返回['a', 'b', 'c', 'd', nan]
,則意味着數據集中的值可能不等於np.NaN
,但等於字符串“ nan”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.