Как создать фрейм данных из вложенного списка нескольких общих элементов - PullRequest
2 голосов
/ 28 февраля 2020

Скажем, у меня есть любой вложенный список, например

A = [[120, 'Date1', 1.03], [120, 'Date2', 1.04], [120, 'Date3', 1.02], [240, 'Date1', 1.06], [240,'Date2', 0.98],
     [240, 'Date3', 1.04], [381, 'Date2', 1.03], [381, 'Date3', 0.85]]

Первый элемент каждого подсписка - это номер товара, второй - дата и третье соответствующее значение. Я хочу создать фрейм данных, в котором заголовки столбцов - это номер запаса, заголовки строк - это дата, а элементы - соответствующие (третий элемент) значения. Я не совсем уверен, как бы я это сделал. Я хочу сформировать что-то вроде этого:

      120     240    381
Date1 1.03    1.06   NaN
Date2 1.04    0.98   1.03
Date3 1.02    1.04   0.85

Но я хочу сформировать это для вложенного списка размером любой , поэтому я не могу просто ввести каждый переменная для кадра данных. Любая помощь будет принята с благодарностью.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 28 февраля 2020

Создать DataFrame с помощью конструктора, а затем DataFrame.pivot с DataFrame.rename_axis:

df = pd.DataFrame(A).pivot(1,0,2).rename_axis(index=None, columns=None)
print (df)
        120   240   381
Date1  1.03  1.06   NaN
Date2  1.04  0.98  1.03
Date3  1.02  1.04  0.85
1 голос
/ 28 февраля 2020

Вы можете сначала преобразовать свой список в dict, а затем непосредственно построить DataFrame.

d = {}
[d.setdefault(e[0],{}).update({e[1]:e[2]}) for e in A]
df = pd.DataFrame(d)

        120     240     381
Date1   1.03    1.06    NaN
Date2   1.04    0.98    1.03
Date3   1.02    1.04    0.85
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...