python - 用 1 替换列中的非 Null 值

标签 python pandas dataframe

我有一个数据框,其中有一列如下所示:

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/

相关文章:

python - 如何修复此收敛错误? Python 3 统计模型

python - 如何使用 pandas.read_csv 从列表中删除第一个元素?

python - 比较两个或三个数据帧中的列值并合并

Python:带有奇数和累加器的随机模块

python - 什么时候应该使用 setUpClass 什么时候只使用类成员?

python - 使用 itertools.product 在范围内重复

python - pandas - 根据 'next' 行值创建新列

python - 每月 Winsorize dataframe 列,同时忽略 NaN 的

python - Pandas 重新索引日期索引按组重新访问

R - 获取每组的前 N-1 行