Я пытаюсь передать строковую переменную в 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' не определено