我正在尝试从函数中将字符串变量传递到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'未定义