代码之家  ›  专栏  ›  技术社区  ›  Sahil Chaturvedi

无法理解pd.replace中regex和inplace的意义(regex=false,inplace=false)

  •  0
  • Sahil Chaturvedi  · 技术社区  · 6 年前

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

    有人能解释一下regex和inplace在上述行中的意义吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Roushan    6 年前

    从doc:

    regex:bool或与to-replace相同的类型,默认为false

    是否将替换和/或值解释为正则表达式。 如果这是真的,那么to_replace必须是一个字符串。否则, to_replace必须为none,因为此参数将被解释为 正则表达式或正则表达式的列表、dict或数组。

    inplace:boolean,默认为false

    如果是真的,在适当的地方。注意:这将修改关于此的任何其他视图 对象(例如数据帧中的列)。如果是,则返回调用方 真的。

    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_place value 它将用值替换匹配的模式

    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
    

    从上面的字符串“United Kingdom…”替换为值United Kingdom和 inplace = True 修改了相同的数据帧 df.