将熊猫系列列表转换为单个熊猫数据框

时间:2019-07-19 17:57:45

标签: python-3.x pandas dataframe statsmodels

我在数据集上使用statsmodels.api。我有熊猫系列的清单。熊猫系列具有键值对。键是列的名称,值包含数据。但是,我有一个重复键(列名)的系列列表。我想将所有熊猫系列列表中的值保存到单个数据帧中,其中列名是熊猫系列的键。列表中的所有系列均具有相同的键。我想将它们另存为单个数据框,以便可以将数据框导出为CSV。知道如何将键另存为df的列名,然后让值填充其余信息。

列表中的每个系列均返回以下内容:

index 0 of the list: <class 'pandas.core.series.Series'>

height     23
weight     10
size       45
amount      9 

index 1 of the list: <class 'pandas.core.series.Series'>

height     11
weight     99
size       25
amount     410 

index 2 of the list: <class 'pandas.core.series.Series'>

height     3
weight     0
size       115
amount     92 

我希望能够读取一个数据框,以便将这些值保存为以下内容:

DataFrame:

height   weight   size   amount
  23       10      45      9
  11       11      25      410
   3        3      115     92

3 个答案:

答案 0 :(得分:1)

pd.DataFrame(data=your_list_of_series)

创建新的DataFrame时,pandas会接受data参数系列的列表。您系列的索引将成为DataFrame的列名。

答案 1 :(得分:0)

不是最有效的方法,但这可以解决问题:

import pandas as pd

series_list =[  pd.Series({ 'height':     23,
                        'weight':     10,
                        'size':       45,
                        'amount':      9
                      }),
            pd.Series({ 'height':     11,
                        'weight':     99,
                        'size':       25,
                        'amount':      410
                     }),

            pd.Series({ 'height':     3,
                        'weight':     0,
                        'size':       115,
                        'amount':      92
                     })
        ]

pd.DataFrame( [series.to_dict() for series in series_list] )

答案 2 :(得分:0)

您是否尝试仅在系列列表中调用pd.DataFrame()?那应该工作。

import pandas as pd

series_list = [
    pd.Series({
            'height': 23,
            'weight': 10,
            'size': 45,
            'amount': 9
        }),
        pd.Series({
            'height': 11,
            'weight': 99,
            'size': 25,
            'amount': 410
        }),
        pd.Series({
            'height': 3,
            'weight': 0,
            'size': 115,
            'amount': 92
        })
    ]
df = pd.DataFrame(series_list)
print(df)
df.to_csv('path/to/save/foo.csv')

输出:

   height  weight  size  amount
0      23      10    45       9
1      11      99    25     410
2       3       0   115      92