fillna() 产生 NaN 值
fillna() produces NaN values
我使用以下代码填充 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
值
任何指点将不胜感激。
您在第一个 sum
条目中看到 NaN
了吗?这一行:
branchConceptsWithScoresMin10['Sum'] = (branchConceptsWithScoresMin10.iloc[1:len(branchConceptsWithScoresMin10.columns)] > 0).sum(1)
应该是:
branchConceptsWithScoresMin10['Sum'] = (branchConceptsWithScoresMin10.iloc[0:len(branchConceptsWithScoresMin10.columns)] > 0).sum(1)
注意索引从 0
开始。
示例:
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.
我使用以下代码填充 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
值
任何指点将不胜感激。
您在第一个 sum
条目中看到 NaN
了吗?这一行:
branchConceptsWithScoresMin10['Sum'] = (branchConceptsWithScoresMin10.iloc[1:len(branchConceptsWithScoresMin10.columns)] > 0).sum(1)
应该是:
branchConceptsWithScoresMin10['Sum'] = (branchConceptsWithScoresMin10.iloc[0:len(branchConceptsWithScoresMin10.columns)] > 0).sum(1)
注意索引从 0
开始。
示例:
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.