Pandas 如何从系列转换为数据框

Pandas How to convert from series to a data frame

假设我有一个像这样的数据框的简单系列

S1 = Series([2.0, 0.816 , 0.2] , [51.0, 50.0 , 0.3])

pandas 将这个系列转换为这样的数据框的最佳方法是什么

pd.DataFrame({
        'mean' :  [2.0 , 51.0] , 
        'median' : [0.816 , 50.0] , 
        'sd' : [0.2 ,0.3]
    })

数据框应该是这样的

mean    median      sd
 2      0.816       0.2
 51     50.000      0.3

一种方法

你可以做一些索引魔法

D1 = S1.to_frame().reset_index().T

现在您可以将列名称映射到任何内容

D1.rename( columns={0:'mean',1:'median',2:'sd'}, inplace=True) # should match the list order in S1
D1.reset_index(drop=True,inplace=True) # reset the funky index
#   mean  median   sd
#0    51  50.000  0.3
#1     2   0.816  0.2

还有一个方法

你可以做一个字典

vars     = ['mean','media','mode'] #again matching the order of the lists in S1
data_dict = dict(zip( vars,S1.iteritems()))
D1       = pandas.DataFrame.from_dict(data_dict)