Назначить имена столбцов в строке для фрейма данных - Python - PullRequest
0 голосов
/ 15 октября 2018

У меня есть следующая строка в Python (это не список, это строка):

a = ['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']

У меня также есть следующий фрейм данных:

   0      1      2      3
0  AA     AB     BC     CD
1  AZ     ZR     RT     TN

Что я хочуdo - присвоить строку 'a' столбцам информационного блока.Я сделал это:

df.columns = a

Но я получаю следующую ошибку:

TypeError: Index(...) must be called with a collection of some kind, 
"['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 
'cc_rec_end_date']" was passed

Я не могу напрямую передать строку в df.columns.Есть идеи по этому поводу?Спасибо !!!! * * 1013

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Или даже лучше, используйте split:

df.columns = map(lambda x:x[1:-1],a[1:-1].split(', '))

Тогда сейчас:

print(df)

Будет желаемый вывод, например:

  cc_call_center_sk cc_call_center_id cc_rec_start_date cc_rec_end_date
0                AA                AB                BC              CD
1                AZ                ZR                RT              TN
0 голосов
/ 15 октября 2018

Вам нужно преобразовать строки в список по ast.literal_eval:

import ast

df.columns = ast.literal_eval(a)

Другое решение с strip и split, последнее удаление ' для каждого имени столбца:

a = "['cc_call_center_sk', 'cc_call_center_id', 'cc_rec_start_date', 'cc_rec_end_date']"

#solution 1
df.columns = [x.strip("'") for x in a.strip("[]").split(', ')]
#solution 2
df.columns = pd.Index(a.strip('[]').split(', ')).str.strip("'")

print (df)
  cc_call_center_sk cc_call_center_id cc_rec_start_date cc_rec_end_date
0                AA                AB                BC              CD
1                AZ                ZR                RT              TN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...