![](/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.