从多个熊猫系列创建数据框

时间:2019-01-15 08:56:43

标签: python pandas data-science

尝试从多个熊猫系列创建数据框。

这是我的代码

series = [pd.Series([nine, ten, eleven, twelve,thirteen], index=('link','post','shared','status','timeline'))]
my_names = [2009,2010,2011,2012,2013,2014,2015,2016,2017,2018]
my_series = [pd.Series([nine, ten, eleven, twelve,thirteen], index=('link','post','shared','status','timeline'), name=n) for n in my_names]

以下是我正在与之交互的数据系列的示例:

#nine
title
link       6.060606
post       8.080808
status    85.858586
dtype: float64

#ten
title
link         1.666667
post        15.833333
shared       1.666667
status      71.666667
timeline     9.166667
dtype: float64

#eleven
title
link        23.885350
shared       0.318471
status      59.872611
timeline    15.923567
dtype: float64

#twelve
title
link        18.660287
shared       3.588517
status      65.550239
timeline    12.200957
dtype: float64

期望的结果是将2009-2018年作为列标题,链接,共享,状态,时间轴发布作为行索引,并使用每个系列的值填充每一行(九个= 2009,十个= 2010)。

这是我当前结果的一个示例:

sample

1 个答案:

答案 0 :(得分:1)

我相信您需要concat和参数keys作为新列名:

ser = [nine, ten, eleven, twelve,thirteen]
my_names = [2009,2010,2011,2012,2013]

df = pd.concat(ser, axis=1, keys=my_names)

如果输入是列表:

nine = [4,5,6]
ten = [9,0,3]
eleven = [7,3,0]

L = [nine, ten, eleven]
my_names = [2009,2010,2011]

df = pd.DataFrame({k:v for k, v in zip(my_names, L)})
print (df)
   2009  2010  2011
0     4     9     7
1     5     0     3
2     6     3     0

您的解决方案返回列表Series,因此只需要concat

df = pd.concat(my_series, axis=1)

或者:

df = pd.DataFrame(my_series).T