2016-07-01 2 views
3

У меня есть труба с разделителями данных, возвращаемым из API вызова Rest:Python перестройка списка строк на основе разделителей

data = ['Bob|37', 'Eric|40'] 

Я извлек информацию заголовка из первой «линии» и разделить его в список:

column_list = ['Name','Age'] 

Я пытаюсь прочитать в панд dataframe:

pd.DataFrame(data,columns=column_list) 

Unsurprisingly это комп laining о данных, находящихся в неправильной форме

"ValueError: Shape of passed values is (1, 2), indices imply (2, 2)"

Какой самый лучший способ разделить строки в списке данных, чтобы иметь возможность загрузить его в dataframe?

+1

там может быть лучше панда конкретным способом, но '[row.split ('|') для строки в данных] ', как я сделал бы это в чистом python – Hamms

+0

Спасибо @Hamms Это тоже сработало. – Calamari

ответ

1

Попробуйте это:

data = ['Bob|37', 'Eric|40'] 

df = pd.Series(data).str.split('|', expand=True) 
df.columns = ['Name', 'Age'] 
print df 

    Name Age 
0 Bob 37 
1 Eric 40 
1

Вот альтернативное решение один вкладыш (используя .str.extract()) функцию:

In [20]: df = pd.Series(data).str.extract(r'(?P<Name>.*?)\|(?P<Age>.*)', expand=True) 

In [21]: df 
Out[21]: 
    Name Age 
0 Bob 37 
1 Eric 40 
Смежные вопросы