преобразование списка в datafame pandas - PullRequest
0 голосов
/ 03 июля 2018

Создание списка в цикле, мой окончательный список выглядит следующим образом:

L [col1, col2, col3, col4 \
 0 N 225.0 12.0 03.0 B ,
   col1, col2, col3, col4 \
 0 W 223.0 12.0 01.0 M ,
   col1, col2, col3, col4 \
 0 X 203.0 11.0 04.0 P ] 

Я пытаюсь преобразовать это в pandas DataFrame?

Каждая строка выглядит как правильный фрейм данных:

L[0]  
col1 col2 col3 col4
N 225.0 12.0 03.0 B

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Я считаю, что нужно создать двумерный массив с DataFrame конструктором:

L = ['col1', 'col2', 'col3', 'col4', 
    'N 225.0', '12.0', '03.0', 'B' ,
   'col1', 'col2', 'col3', 'col4', 
    'W 223.0', '12.0', '01.0', 'M' ,
   'col1', 'col2', 'col3', 'col4', 
    'X 203.0', '11.0', '04.0', 'P' ]

a = np.array(L).reshape(-1, 8)[:, -4:]
print (a)
[['N 225.0' '12.0' '03.0' 'B']
 ['W 223.0' '12.0' '01.0' 'M']
 ['X 203.0' '11.0' '04.0' 'P']]

df = pd.DataFrame(a, columns = L[:4])
print (df)
      col1  col2  col3 col4
0  N 225.0  12.0  03.0    B
1  W 223.0  12.0  01.0    M
2  X 203.0  11.0  04.0    P

Объяснение

Сначала преобразовать список в массив 1d numpy:

print (np.array(L))
['col1' 'col2' 'col3' 'col4' 'N 225.0' '12.0' '03.0' 'B' 'col1' 'col2'
 'col3' 'col4' 'W 223.0' '12.0' '01.0' 'M' 'col1' 'col2' 'col3' 'col4'
 'X 203.0' '11.0' '04.0' 'P']

затем изменить в Nx8-й массив:

print (np.array(L).reshape(-1, 8))
[['col1' 'col2' 'col3' 'col4' 'N 225.0' '12.0' '03.0' 'B']
 ['col1' 'col2' 'col3' 'col4' 'W 223.0' '12.0' '01.0' 'M']
 ['col1' 'col2' 'col3' 'col4' 'X 203.0' '11.0' '04.0' 'P']]

И последний выбор последних 4 столбцов:

print (np.array(L).reshape(-1, 8)[:, -4:])
[['N 225.0' '12.0' '03.0' 'B']
 ['W 223.0' '12.0' '01.0' 'M']
 ['X 203.0' '11.0' '04.0' 'P']]
0 голосов
/ 03 июля 2018

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

L = ['Thanks You', 'Its fine no problem', 'Are you sure']

#create new df 
df = pd.DataFrame({'col':L})
print (df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...