如何将变量从函数传递到columns.str.replace命令?

时间:2019-02-17 18:30:22

标签: python-3.x pandas dataframe

我正在尝试从函数中将字符串变量传递到columns.str.replace。

以下是数据框:

df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
'num_wings': [2, 0, 0, 0],
'num_specimen_seen': [10, 2, 1, 8]},
index=['falcon', 'dog', 'spider', 'fish'])

df

num_legs    num_wings   num_specimen_seen
falcon  2   2   10
dog     4   0   2
spider  8   0   1
fish    0   0   8

与功能分开测试时,此命令有效:

df.columns = df.columns.str.replace("num", "SUM")
df
SUM_legs    SUM_wings   SUM_specimen_seen
falcon  2   2   10
dog         4   0   2
spider  8   0   1
fish    0   0   8

但是,当我尝试将变量作为函数的一部分传递时,它们不会被识别为字符串。

def customize_df(old_column_value,new_column_value):
    df1 = df.copy()
    df1.columns = df1.columns.str.replace(old_column_value, 
    new_column_value)
    return df1

customize_df(num,SUM)

错误消息:

NameError                                 Traceback (most recent 
call last)
<ipython-input-16-e645dd7b50f4> in <module>
----> 1 customize_df(num,SUM)

NameError:名称'num'未定义

0 个答案:

没有答案