在矢量化字符串方法文档(http://pandas.pydata.org/pandas-docs/stable/basics.html#vectorized-string-methods)中。。。在
In [204]: s3 = Series(['A', 'B', 'C', 'Aaba', 'Baca',
.....: '', np.nan, 'CABA', 'dog', 'cat'])
.....:
In [205]: s3
Out[205]:
0 A
1 B
2 C
3 Aaba
4 Baca
5
6 NaN
7 CABA
8 dog
9 cat
dtype: object
In [206]: s3.str.replace('^.a|dog', 'XX-XX ', case=False)
Out[206]:
0 A
1 B
2 C
3 XX-XX ba
4 XX-XX ca
5
6 NaN
7 XX-XX BA
8 XX-XX
9 XX-XX t
dtype: object
为什么在上面的.replace()示例中,'ba'和'ba'没有被正则表达式选择作为replace()方法中的第一个参数并被替换为'XX-XX'?在我看来,这是在说^后面的任何字符。无论大小写,用“XX-XX”替换以该字符开头的a或dog。在
这是因为在字符串的开头没有找到“ba”和“ba”,其中alternative在
^.a
中有^
锚点,它断言字符串开头的位置。在相关问题 更多 >
编程相关推荐