从3个列表生成dataframe/numpy数组

2024-10-01 07:21:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从以下三个列表中创建一个矩阵或数据帧:

x = ["col1","col2","col3","col4","col5","col6","col7","col8","col9","col10"]
y = ["a","b","c"]
z = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]

我的目标是得到一个如下所示的数据帧:

  col1 col2 col3 col4 col5 col6 col7 col8 col9 col10
a   1    2   3    4    5   6     7    8    9    10
b   11   12  13   14   15  16    17   18   19   20 
c   21   22  23   24   25  26    27   28   29   30

Tags: 数据目标列表矩阵col2col3col1col4
3条回答

zipiterpandas.DataFrame.from_dict

pd.DataFrame.from_dict(
    {k: dict(zip(x, i)) for k, i in zip(y, [iter(z)] * len(y))},
    orient='index'
)

   col1  col2  col3  col4  col5  col6  col7  col8  col9  col10
a     1     2     3     4     5     6     7     8     9     10
b    11    12    13    14    15    16    17    18    19     20
c    21    22    23    24    25    26    27    28    29     30

IIUC公司

pd.DataFrame(np.array(z).reshape(len(y),-1),index=y,columns=x)
Out[550]: 
   col1  col2  col3  col4  col5  col6  col7  col8  col9  col10
a     1     2     3     4     5     6     7     8     9     10
b    11    12    13    14    15    16    17    18    19     20
c    21    22    23    24    25    26    27    28    29     30

给你:

df = pd.DataFrame(np.array(z).reshape(-1,len(x)))
df.columns = x
df.index = y

相关问题 更多 >