通过np.select的“默认”参数输入空值

时间:2018-09-27 12:09:07

标签: python-3.x numpy

在给定条件的情况下尝试将值写入列,默认情况下,使用以下代码将其作为Null值:

df[col] = np.select(conditions,choices,default=np.nan)

但是它在列中给出“ nan”作为字符串值。 有没有办法从此代码直接将其更改为null? 对np.Nan和np.NAN进行了相同的尝试,但仍然没有变化。

2 个答案:

答案 0 :(得分:0)

只需自己测试一下,它就可以正常工作。手动检查np.select(conditions,choices,default=np.nan)的输出,也许choices中某处有“ NaN”字符串。

尝试在dropna=True中手动指定.value_counts(),也许已将其设置为默认的False smh?

我测试过的东西:

import numpy as np
import pandas as pd

iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
iris['sepal_length'] = np.select(iris.values[:,:4].T>5, iris.values[:,:4].T, default=np.nan)

print(iris['sepal_length'].value_counts())
print(iris.sepal_length.value_counts(dropna=False))

答案 1 :(得分:0)

找到正确的解决方案:

df[col] = np.select(conditions,choices,default=None)