Список списка кортежей для панд данных - PullRequest
0 голосов
/ 22 мая 2018

У меня есть этот массив (это результат вычисления сходства), это список кортежей, подобный этому:

example = [[(a,b), (c,d)], [(a1,b1), (c1,d2)] …]

Например, существует 121044 списка из 30 кортежей каждый.

Iхотите иметь панду Dataframe, подобную просто второму значению кортежей (то есть: b, d, b1, d2), не тратя много времени на его вычисление

У вас есть идеи?

Ответы [ 2 ]

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

Для числовых данных вы можете напрямую использовать индексирование numpy.Это должно быть более эффективным, чем понимание списка, поскольку pandas использует numpy для хранения данных в смежных блоках памяти.

import pandas as pd, numpy as np

example = [[(1,2), (3,4)], [(5,6), (7,8)]]

df = pd.DataFrame(np.array(example)[..., 1],
                  columns=['col1', 'col2'])

print(df)

   col1  col2
0     2     4
1     6     8
0 голосов
/ 22 мая 2018

Использовать понимание вложенного списка:

df = pd.DataFrame([[y[1] for y in  x] for x in example])
print (df)
    0   1
0   b   d
1  b1  d2

df = pd.DataFrame([[y[1] for y in  x] for x in example], columns=['col1','col2'])
print (df)
  col1 col2
0    b    d
1   b1   d2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...