尝试从多个熊猫系列创建数据框。
这是我的代码
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)。
这是我当前结果的一个示例:
答案 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