如何将行值列表和列名列表与 python pandas 组合?

how to combine list of row values and a list of column names with python pandas?

假设我有一个数据列表,其中包含多个列的多个行值:

data = ['jack', 34, 'Sydney', 155 , 'Riti', 31, 'Delhi', 177.5 , 'Aadi', 16, 'Mumbai', 81 , 
        'Mohit', 31, 'Delhi', 167 , 'Veena', 12, 'Delhi', 144 , 'Shaunak', 35, 'Mumbai', 135 ,
        'Shaun', 35, 'Colombo', 111]

我还有另一个包含列名称的列表:

columns = ['Name', 'Age', 'City', 'Score']

现在如何将这两个列表合并到一个数据框中 pandas,像这样?

您可以从您的列表中创建 np.array,然后使用 .reshape:

重新塑造它
df = pd.DataFrame(np.array(data).reshape((-1, len(columns))), columns=columns)
print(df)

打印:

      Name Age     City  Score
0     jack  34   Sydney    155
1     Riti  31    Delhi  177.5
2     Aadi  16   Mumbai     81
3    Mohit  31    Delhi    167
4    Veena  12    Delhi    144
5  Shaunak  35   Mumbai    135
6    Shaun  35  Colombo    111

您可以使用 data[0::4] 到 select 每 4 个项目,从第一个开始,data[1::4] 到 select 从第二个开始每 4 个项目,依此类推.然后,将它们放入一个数组中,并将 dict + zip 与该数组和列一起使用,并将其传递给 pd.DataFrame:

df = pd.DataFrame(dict(zip(columns, [data[0::4], data[1::4], data[2::4], data[3::4]])))

输出:

>>> df
      Name  Age     City  Score
0     jack   34   Sydney  155.0
1     Riti   31    Delhi  177.5
2     Aadi   16   Mumbai   81.0
3    Mohit   31    Delhi  167.0
4    Veena   12    Delhi  144.0
5  Shaunak   35   Mumbai  135.0
6    Shaun   35  Colombo  111.0
import pandas as pd

data = ['jack', 34, 'Sydney', 155, 'Riti', 31, 'Delhi', 177.5, 'Aadi', 16, 'Mumbai', 81, 'Mohit', 31, 'Delhi', 167,
        'Veena', 12, 'Delhi', 144, 'Shaunak', 35, 'Mumbai', 135, 'Shaun', 35, 'Colombo', 111]

columns = ['Name', 'Age', 'City', 'Score']
nnn = []
for i in range(0, len(data), 4):
    nnn.append(data[i:i + 4])

df = pd.DataFrame(nnn, columns=columns)

输出

      Name  Age     City  Score
0     jack   34   Sydney  155.0
1     Riti   31    Delhi  177.5
2     Aadi   16   Mumbai   81.0
3    Mohit   31    Delhi  167.0
4    Veena   12    Delhi  144.0
5  Shaunak   35   Mumbai  135.0
6    Shaun   35  Colombo  111.0