Как я могу иметь отдельные столбцы данных из списка кортежей и списка - PullRequest
0 голосов
/ 06 мая 2018

У меня есть следующие списки:

l1 = [(1,2),(3,4),(5,6)]
l2 = [7,8,9]

Я хочу вывод как df

df =

       c1 c2 c3

   0   1   2   7
   1   3   4   8
   2   5   6   9

Пока я могу выделить только кортеж как

df = pd.DataFrame(l1) 

что дает мне:

   c1  c2
0  1  2
1  3  4
2  5  6

Я хочу сделать для нескольких списков различных форм, как указано выше.

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Вы также можете просто использовать pd.concat и объединять кадры данных, полученные из pd.DataFrame(l1) и pd.Dataframe(l2):

df = pd.concat([pd.DataFrame(l1), pd.DataFrame(l2)], axis=1)

>>> df
   0  1  0
0  1  2  7
1  3  4  8
2  5  6  9
0 голосов
/ 06 мая 2018

2-листовая форма:

pd.DataFrame([*x, y] for x, y in  zip(l1, l2))

   0  1  2
0  1  2  7
1  3  4  8
2  5  6  9

Форма с несколькими списками:

from collections import Sequence

lists = [l1, l2, ...]
pd.DataFrame([
    [
        k for j in i for k in (j 
        if isinstance(j, Sequence) else [j]
    )] 
    for i in zip(*lists)
])

   0  1  2
0  1  2  7
1  3  4  8
2  5  6  9

Это будет работать для любого случая, независимо от того, является ли l_i списком кортежей или списком целых чисел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...