对于pandas 0.19.2,python 3.6.0 dataframe.replace与dictionary一起作用于子字符串(如“find”),series.replace也一样。pandas 0.24.0 python 3.6.8似乎作用于数据帧的整个字符串(类似于“match”),并且仍然作用于序列的子字符串(类似于“find”)。
df = pd.DataFrame({'c1':['AD','BD'],'c2':['AD','BD']})
print(df)
print(df.replace(to_replace={'c1':{r'D': ''}, 'c2':{r'BD': ''}},regex=True))
print(df.replace(to_replace={r'D': ''},regex=True))
print(df['c1'].replace(to_replace=r'D', value='',regex=True))
pandas 0.19.2生成(为了易读性,我添加了一些空白行):
c1 c2
0 AD AD
1 BD BD
c1 c2
0 A AD
1 B
c1 c2
0 A A
1 B B
0 A
1 B
Name: c1, dtype: object
大熊猫0.24.0:
c1 c2
0 AD AD
1 BD BD
c1 c2
0 AD AD
1 BD
c1 c2
0 AD AD
1 BD BD
0 A
1 B
Name: c1, dtype: object
在我看来像熊猫虫,还是我错过了什么?