小编Tai*_*de 的帖子

Panda 的 pd.where 函数在可为空条件下的行为

当使用 Pandas 的Series.where函数时,我遇到了以下行为:似乎应用可Series.where为空条件的结果取决于参数的值inplace

比较以下两个代码片段:

s = pd.Series(range(6))
cond = [True, False, pd.NA, False, True, True]
t = s.where(cond=cond) 
Run Code Online (Sandbox Code Playgroud)

给出

t
0    0.0
1    NaN
2    NaN
3    NaN
4    4.0
5    5.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)

然而

s = pd.Series(range(6))
cond = [True, False, pd.NA, False, True, True]
s.where(cond=cond, inplace=True) 
Run Code Online (Sandbox Code Playgroud)

给出

s
0    0.0
1    NaN
2    2.0
3    NaN
4    4.0
5    5.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)

这似乎是一个设计选择。事实上,在查看源代码时,我们看到以下内容:

# make sure we are boolean
 fill_value …
Run Code Online (Sandbox Code Playgroud)

python series dataframe pandas

5
推荐指数
0
解决办法
188
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1

series ×1