распаковка неравного списка списков в pandas фрейм данных - PullRequest
0 голосов
/ 02 марта 2020

У меня есть список списков в переменной ниже mydata

[
  [["item1"], ["2016","value1"], ["2017","value2"], ["2018","value3"], ["2019","value4"]],
  [["item2"], ["2016","value1"], ["2017","value2"], ["2018","value3"], ["2019","value4"]],
  [["item3"], ["2016","value1"], ["2017","value2"], ["2018","value3"], ["2019","value4"]],
  [["item4"], ["2016","value1"], ["2017","value2"], ["2018","value3"], ["2019","value4"]],
]

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

index     item1  | item2  | item3  | item4
2016      value1 | value1 | value1 | value1
2017      value2 | value2 | value2 | value2
2018      value3 | value3 | value3 | value3
2019      value4 | value4 | value4 | value4

Однако, когда я пытался DataFrame(mydata), это дает мне следующий результат:

index   0                 | 1                 | 2                 | 3  
item1   ["2016","value1"] | ["2017","value2"] | ["2018","value3"] | ["2019","value4"]
item2   ["2016","value1"] | ["2017","value2"] | ["2018","value3"] | ["2019","value4"]
item3   ["2016","value1"] | ["2017","value2"] | ["2018","value3"] | ["2019","value4"]
item4   ["2016","value1"] | ["2017","value2"] | ["2018","value3"] | ["2019","value4"]

Я думаю, что это из-за природы mydata, где список списков распределен неравномерно. Но возможно ли распаковать его в dataFrame, как я указал? Или я должен создать для l oop до go через каждый элемент и распаковать его в dataFrame?

1 Ответ

2 голосов
/ 02 марта 2020

В одну сторону, сначала dict:

df = pd.DataFrame({l[0][0]:dict(l[1:]) for l in mydata})
print(df)

Вывод:

       item1   item2   item3   item4
2016  value1  value1  value1  value1
2017  value2  value2  value2  value2
2018  value3  value3  value3  value3
2019  value4  value4  value4  value4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...