Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 意外的.Series.replace()行为_Python_Pandas - Fatal编程技术网

Python 意外的.Series.replace()行为

Python 意外的.Series.replace()行为,python,pandas,Python,Pandas,鉴于此- 将熊猫作为pd导入 s=pd.系列([''1','2','4','6']) 为什么会这样- s.replace(“”,无)。值 结果是- array(['''1','2','2','4','4','6'],dtype=object) 我什么时候会想到这个- 数组([None,'1','2',None,'4',None,'6'],dtype=object)在这里使用None是有问题的。如果为参数传递None,它将使用该()的默认值: 没有 types.NoneType的唯一值。没有一个经

鉴于此-

将熊猫作为pd导入

s=pd.系列([''1','2','4','6'])

为什么会这样-

s.replace(“”,无)。值

结果是-

array(['''1','2','2','4','4','6'],dtype=object)

我什么时候会想到这个-


数组([None,'1','2',None,'4',None,'6'],dtype=object)

在这里使用None是有问题的。如果为参数传递None,它将使用该()的默认值:

没有

types.NoneType的唯一值。没有一个经常用于 表示没有值,如没有默认参数 传递给函数

因此
s.replace(“”,None)
s.replace(“”)
相同。显然,没有传递值时的默认操作是向前填充序列。相反,您可以使用np.nan:

pd.Series(['', '1', '2', '', '4', '', '6']).replace('', np.nan)
Out: 
0    NaN
1      1
2      2
3    NaN
4      4
5    NaN
6      6
dtype: object
或者通过口述:

s.replace({'': None})
Out: 
0    None
1       1
2       2
3    None
4       4
5    None
6       6
dtype: object

现在使用
s.replace(['],[None]).values
,这与您想要的是一样的。这是完全混乱(和危险)的行为。库应该使用默认值的标记对象写入,例如replace(…,value=MISSING_TOKEN,),并且允许值为None。