Python fillna()生成NaN值
我使用以下代码填充NaN值,然后向DataFrame添加一列,该列将包含一行中大于0的值数。代码如下:Python fillna()生成NaN值,python,pandas,dataframe,na,Python,Pandas,Dataframe,Na,我使用以下代码填充NaN值,然后向DataFrame添加一列,该列将包含一行中大于0的值数。代码如下: df.fillna(0, inplace=True) dfMin10 = df dfMin10['Sum'] = (dfMin10.iloc[1:len(dfMin10.columns)] > 0).sum(1) dfMin10 当我看到列Sum时,我仍然看到一些NaN值。为什么会这样?我假设我的DataFrame df即使在替换NaN之后也有一些NaN值 任何提示都将不胜感激。您是否
df.fillna(0, inplace=True)
dfMin10 = df
dfMin10['Sum'] = (dfMin10.iloc[1:len(dfMin10.columns)] > 0).sum(1)
dfMin10
当我看到列Sum时,我仍然看到一些NaN值。为什么会这样?我假设我的DataFrame df即使在替换NaN之后也有一些NaN值
任何提示都将不胜感激。您是否在第一个总和条目中看到NaN?这一行:
branchConceptsWithScoresMin10['Sum'] = (branchConceptsWithScoresMin10.iloc[1:len(branchConceptsWithScoresMin10.columns)] > 0).sum(1)
这应该是:
branchConceptsWithScoresMin10['Sum'] = (branchConceptsWithScoresMin10.iloc[0:len(branchConceptsWithScoresMin10.columns)] > 0).sum(1)
请注意从0开始的索引
例如:
你说得对,我在第一篇文章中就看到了。但我在最近的许多作品中也看到了NaN。我不知道为什么。啊,我做了些傻事。它应该是branchconceptswithscoresimn10['Sum']=branchconceptswithscoresimn10.iloc[0:]>0.sum1。现在它可以工作了。在对得到NaN的行求和之前,先看一下数据帧,这应该会给你一些想法。如果你把它贴在你的问题上,我们可以试着帮你。酷。很高兴分类了。
df = pandas.DataFrame(columns=['a','b','c','d'], index=['x','y','z'])
df.fillna(0, inplace=True)
branchConceptsWithScoresMin10 = df
# Your original code
branchConceptsWithScoresMin10['Sum'] = (branchConceptsWithScoresMin10.iloc[1:len(branchConceptsWithScoresMin10.columns)] > 0).sum(1)
# This should return
# a b c d Sum
# x 0 0 0 0 NaN
# y 0 0 0 0 0.0
# z 0 0 0 0 0.0
branchConceptsWithScoresMin10['Sum'] = (branchConceptsWithScoresMin10.iloc[0:] > 0).sum(1)
# There should not be any NaNs here.