如何在Python中将列表列表转换为Padans数据框

时间:2019-02-12 06:51:09

标签: python pandas

我有一个如下列表,需要将其隐藏为一个熊猫数据框。

mylist = [[2000, 0.5, 0.3, 0.8, 0.9, 0.8], [2001, 0.5, 0.6, 0.8, 0.9, 0.9], [2002, 0.5, 0.3, 0.8, 0.8, 0.8], [2003, 0.9, 0.9, 0.9, 0.9, 0.8]]
columns = ['year', 'score_1', 'score_2', 'score_3', 'score_4', 'score_5']

我希望数据框如下。

    year score_1 score_2 score_3 score_4 score_5
0    2000   0.5    0.3     0.8      0.9     0.8
1    2001   0.5    0.6     0.8      0.9     0.9
2    2002   0.5    0.3     0.8      0.8     0.8
3    2003   0.9    0.9     0.9      0.9     0.8

当前,我正在关注以下代码。但是它需要将我原来的“我的清单”数据重新组织为“年份”和“得分”。

pd.DataFrame(data=[scores],index=[year],columns=columns)

因此,我想知道在熊猫中是否有任何简便的方法。

很高兴在需要时提供更多详细信息。

1 个答案:

答案 0 :(得分:2)

如果仅需要通过alert(data.empid); 的列:

mylist

但是如果需要按年索引,请使用带有DataFrame.from_dict的字典理解:

df = pd.DataFrame(mylist,columns=columns)
print (df)

   year  score_1  score_2  score_3  score_4  score_5
0  2000      0.5      0.3      0.8      0.9      0.8
1  2001      0.5      0.6      0.8      0.9      0.9
2  2002      0.5      0.3      0.8      0.8      0.8
3  2003      0.9      0.9      0.9      0.9      0.8

如果需要设置索引名称,请添加DataFrame.rename_axis

df = pd.DataFrame.from_dict({x[0]: x[1:] for x in mylist},columns=columns[1:], orient='index')
print (df)

      score_1  score_2  score_3  score_4  score_5
2000      0.5      0.3      0.8      0.9      0.8
2001      0.5      0.6      0.8      0.9      0.9
2002      0.5      0.3      0.8      0.8      0.8
2003      0.9      0.9      0.9      0.9      0.8