colunasPes = colunasPes + colunasNova
вводит новую переменную, также называемую colunasPes
, только в области действия функции, на которую вы поэтому ссылаетесь перед присвоением
Вы можете пометить его как global
в функции.
def criaColunas(i):
global colunasPes
for i in len(colunasPes): #replace i? why pass it in?
i = str(i)
colunasNova[i] = colunasPes[i]+i
colunasPes = colunasPes + colunasNova
df = pd.DataFrame(columns = colunasFam+colunasPes, index = range(len(lista))) #this may not do what you want either
Или передать это?
def criaColunas(i, colunasPes):
# exactly as before
criaColunas(1, colunasPes)
Кстати - вы передаете i
, а затем меняете его в цикле for
. Это намеренно?
Более того, вы, похоже, пытаетесь изменить другую переменную в вашей функции, которая находится вне области действия.
Попробуйте вместо этого вернуть фрейм данных?
def criaColunas(i, colunasPes):
global colunasPes
for i in len(colunasPes): #replace i? why pass it in?
i = str(i)
colunasNova[i] = colunasPes[i]+i
colunasPes = colunasPes + colunasNova
return pd.DataFrame(columns = colunasFam+colunasPes, index = range(len(lista)))
df = criaColunas(1, colunasPes)