Python 熊猫如何在柱子上填充到位?

Python 熊猫如何在柱子上填充到位?,python,pandas,Python,Pandas,运行后: df[['column']].fillna(value=myValue, inplace=True) 或: 或: 或: 或: 我的df['column']仍然包含nan listdf['column']。唯一返回['a',b',c',d',nan]和sumpd。isnulldf['column']返回1000+ 我尝试了几种变体,但这个问题仍然存在。如何在pandas中的列上适当地填充NA?此问题的一个原因可能是数据集中的nan值可能是字符串“nan”而不是nan。 要解决此问题,可

运行后:

df[['column']].fillna(value=myValue, inplace=True)
或:

或:

或:

或:

我的df['column']仍然包含nan

listdf['column']。唯一返回['a',b',c',d',nan]和sumpd。isnulldf['column']返回1000+


我尝试了几种变体,但这个问题仍然存在。如何在pandas中的列上适当地填充NA?

此问题的一个原因可能是数据集中的nan值可能是字符串“nan”而不是nan。 要解决此问题,可以使用replace方法而不是fillna

Eg代码:

df['column'].replace(to_replace='nan',value=myValue,inplace=True)

首先,列表中正确的语法是

df['column'].fillna(value=myValue, inplace=True)

如果listdf['column'].unique返回['a',b','c','d',nan],这意味着数据集中的值可能不等于np.nan,而是等于字符串nan。

Ed Chum的注释正确地指出了您提出的方法之间的差异。下面是一个我用来展示它是如何工作的例子

作为pd进口熊猫 将numpy作为np导入 d={'col1':[1,2,3,4],'col2':[3,4,np.nan,np.nan]} df=pd.DataFramedata=d df df['col2'].fillnavalue=6,inplace=True 发布了这篇文章之后,我认为最有价值的是查看my_value变量的值是什么,以及数据帧是什么样子

我放弃了阿迪蒂亚的假设。如果nan是一个字符串,它将出现在引号和标记之间,而不是


希望这有帮助

它不应该是df['column'].fillnavalue=myValue,inplace=True吗?您所写的内容在df的视图上作为一个单独的列工作,这可能就是它失败的原因。好了,现在你发布的应该可以了,但是没有数据和代码来重现你的问题,这变成了一个猜测游戏啊,非常感谢你帮助我解决这个问题。我最初用一个计算的平均值填充这些值,后来我切换到一个模式。我现在看到一个模式需要有一个轴。
df[['column']] = df[['column']].fillna({'column': myValue})
df['column'] = df['column'].fillna({'column': myValue})
df['column'].replace(to_replace='nan',value=myValue,inplace=True)
df['column'].fillna(value=myValue, inplace=True)
   col1  col2
0     1   3.0
1     2   4.0
2     3   NaN
3     4   NaN
   col1  col2
0     1   3.0
1     2   4.0
2     3   6.0
3     4   6.0