就地替换适用于对象,但不适用于字符串dtype

时间:2020-08-29 15:05:54

标签: python pandas dataframe replace

对象dtype上的替换方法产生的结果与字符串dtype上的结果不同。我期待着同样的结果。我正在Python 3.8.5上运行Pandas 1.1.0。

import pandas as pd
import numpy as np

a = pd.DataFrame({'a':['a','b','c'],'b':['d','','']},dtype='object')
b = pd.DataFrame({'a':['a','b','c'],'b':['d','','']},dtype='string')

print(a)
a.replace(r'^\s*$',pd.NA,regex=True,inplace=True)
print(a)

print(b)
b.replace(r'^\s*$',pd.NA,regex=True,inplace=True)
print(b)

   a  b
0  a  d
1  b   
2  c   
   a     b
0  a     d
1  b  <NA>
2  c  <NA>

   a  b
0  a  d
1  b   
2  c   
   a  b
0  a  d
1  b   
2  c   

1 个答案:

答案 0 :(得分:0)

这是一个已确认的错误。参见https://github.com/pandas-dev/pandas/issues/35977