如何在python中将列表垂直对齐到pandas数据框

时间:2019-02-12 07:20:13

标签: pandas list dataframe zip

我有一个如下的数据集。

scores = [0.1, 0.2, 0.3]
years = [2001, 2002, 2003]
columns = ['Years', 'Scores']

我想按如下方式将这三个列表转换为熊猫数据框。

   Years Scores
0  2001   0.1
1  2002   0.2
2  2003   0.3

我正在使用以下代码。

dataset = pd.DataFrame(data=[scores],index=[years],columns=columns)
print(dataset)

但是,这给了我错误。

AssertionError: 2 columns passed, passed data had 3 columns

我认为它可以水平浏览数据。

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

2 个答案:

答案 0 :(得分:2)

listzip一起使用:

dataset = pd.DataFrame(data=list(zip(years, scores)),columns=columns)
print(dataset)
   Years  Scores
0   2001     0.1
1   2002     0.2
2   2003     0.3

答案 1 :(得分:2)

您可以使用numpy.column_stack

import pandas as pd
import numpy as np

scores = [0.1, 0.2, 0.3]
years = [2001, 2002, 2003]
columns = ['Years', 'Scores']

df = pd.DataFrame(np.column_stack([years, scores]), index=[years], columns=columns)

      Years  Scores
2001  2001.0     0.1
2002  2002.0     0.2
2003  2003.0     0.3

要摆脱Years列中的浮点值,请执行以下操作:

df['Years'] = df['Years'].astype(int)

      Years  Scores
2001   2001     0.1
2002   2002     0.2
2003   2003     0.3