Серия Конкат в списке

#python #pandas

Вопрос:

У меня есть несколько series объектов в моем list , где каждая запись содержит:

1.номер месяца (январь: 1, февраль:2 …) в качестве ключевого

2.объект серии как значение

подобный этому

 x = [
    {1: AAA    1
        BBB    1
        CCC    1
        DDD    1
    Name: test1, dtype: int64},

    {2: AAA    3
        CCC    2
        EEE    1
    Name: test1, dtype: int64}
]
 

И я хотел бы объединить эти серии в один фрейм данных, который должен выглядеть так

 Index, month, AAA, BBB, CCC, DDD, EEE
1      1       1    1    1    1    NaN
2      2       3    NaN  2    NaN  1



 

Комментарии:

1. прочитал документ о панд.конкат?

2. Каждый дикт имеет только одну серию, как в образцах данных?

Ответ №1:

Используйте вложенное понимание диктантов для выравнивания списка диктов и перехода к concat последней транспонировке:

 x = [{1:pd.Series([1,1,1], index=list('abc'))}, {2:pd.Series([2,1], index=list('bc'))}]

print (x)
[{1: a    1
b    1
c    1
dtype: int64}, {2: b    2
c    1
dtype: int64}]
                
df = pd.concat({k: v for y in x for k, v in y.items()}, axis=1).T
print (df)
     a    b    c
1  1.0  1.0  1.0
2  NaN  2.0  1.0