我有一个数据框,其中有一列如下所示:
note
129.0
130.0
131.0
132.0
133.0
134.0
135.0
136.0
137.0
138.0
139.0
140.0
141.0
142.0
143.0
所以有些行不包含值 (NaN)。 我想用 1 替换不是 NaN 的数值,得到:
note
1
1
1
1
1
1
1
1
我试过这段代码:
def replace():
if (pd.notnull(df['note'])):
df['note'] = '1'
return df
return df
它返回给我 ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
最佳答案
为此使用 loc
:
In [86]:
df.loc[df['note'].notnull(), 'note'] = 1
df
Out[86]:
note
0 1
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
11 1
12 1
13 1
14 1
if (pd.notnull(df['note']))
不会工作,因为 if
不理解如何处理 bool 值数组,因此ValueError
因为 bool 数组中可能有所有 -1 或只有一个 True
值
关于python - 用 1 替换列中的非 Null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33218719/