无法理解正则表达式在pd.replace中的重要性(regex = False,inplace = False)

时间:2018-06-08 06:18:55

标签: python regex pandas

DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None)

任何人都可以解释正则表达式在上述行中的重要性吗?

1 个答案:

答案 0 :(得分:1)

来自doc:

  

正则表达式:bool或与to_replace相同的类型,默认为False

     

是否将to_replace和/或value解释为正则表达式。   如果这是True,那么to_replace必须是一个字符串。除此以外,   to_replace必须为None,因为此参数将被解释为   正则表达式或列表,dict或正则表达式数组。

     

inplace:boolean,默认为False

     

如果是,那就到位了。注意:这将修改此处的任何其他视图   object(例如DataFrame中的一列)。如果是,则返回调用者   真。

In [39]: import pandas as pd

In [40]: df = pd.DataFrame({"country":["United Kingdom of Great Britain", "Ireland", "United Kingdom of Great Britain & Ireland"], "value":[12,31, 43]})

In [41]: df
Out[41]: 
                                     country  value
0            United Kingdom of Great Britain     12
1                                    Ireland     31
2  United Kingdom of Great Britain & Ireland     43

将字符串中的正则表达式^和*作为参数to_placevalue传递,它将用值

替换匹配的模式
In [42]: df.country.replace("^United Kingdom of Great Britain.*", "United Kingdom", regex=True, inplace=True)

In [43]: df
Out[43]: 
          country  value
0  United Kingdom     12
1         Ireland     31
2  United Kingdom     43

来自String"英国......."被价值联合王国取代并inplace = True修改了相同的数据框df.