Pandas中的方法链接:str.replace无法正常工作

时间:2019-12-04 00:31:23

标签: python pandas

我想读取一个excel文件,并使用方法链接,将列名转换为小写,并将任何空格替换为_。以下代码运行正常

def supp_read(number):
    filename = f"supplemental-table{number}.xlsx"
    df = (pd.read_excel(filename,skiprows=5)
            .rename(columns = str.lower))
    return df

但是下面的代码没有

def supp_read(number):
    filename = f"supplemental-table{number}.xlsx"
    df = (pd.read_excel(filename,skiprows=5)
            .rename(columns = str.lower)
            .rename(columns = str.replace(old=" ",new="_")))
    return df

添加str.replace行之后,出现以下错误:No value for argument 'self' in unbound method call。有人可以阐明我该怎么做才能解决此错误,以及为什么上述方法不起作用?

此外,当我使用str.lower()时,也会遇到相同的错误。为什么str.lower起作用但str.lower()不起作用?

1 个答案:

答案 0 :(得分:1)

这是我经常使用的另一种语法:

def supp_read(number):
    filename = f"supplemental-table{number}.xlsx"
    df = pd.read_excel(filename,skiprows=5)
    df.columns = df.columns.str.lower().replace(" ", "_")
    return df