pandas, разверните серию фреймов данных - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть серия, которая выглядит так:

     result
3    pd.DataFrame({"ABC":1,"American":2,"Heroes":3})
8    pd.DataFrame({"ABC":1,"American":2,"Heroes":3})
11   pd.DataFrame({"ABC":1,"American":2,"Heroes":3})
14   pd.DataFrame({"ABC":1,"American":2,"Heroes":3})
17   pd.DataFrame({"ABC":1,"American":2,"Heroes":3})
20   pd.DataFrame({"ABC":1,"American":2,"Heroes":3})

Как мне получить такой результат:

     ABC    American    Heroes
3    1      2           3
8    1      2           3
11   1      2           3
14   1      2           3
17   1      2           3
20   1      2           3

Это сводит меня с ума, потому что, если я конкатюсь, я теряю свой индекс .

вот моя ближайшая попытка pd.concat(myDf.tolist(), axis=1)

1 Ответ

0 голосов
/ 26 февраля 2020

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

df_list = [pd.DataFrame({"ABC":[1],"American":[2],"Heroes":[3]}),
           pd.DataFrame({"ABC":[1],"American":[2],"Heroes":[3]}),
           pd.DataFrame({"ABC":[1],"American":[2],"Heroes":[3]})]

series = pd.Series(df_list)

И чтобы получить что хочешь:

df = pd.DataFrame(series\
                      .apply(lambda x : x.squeeze().to_list())\
                      .to_list(),
                  columns=series[0].columns)

Результаты:

    ABC American    Heroes
0   1   2           3
1   1   2           3
2   1   2           3
...