gpt4 book ai didi

python - 从多个列表列表创建数据框

转载 作者:太空宇宙 更新时间:2023-11-03 20:38:16 25 4
gpt4 key购买 nike

我需要从 10 个列表中构建一个数据框。我是手动做的,但是需要时间。有什么更好的方法吗?

我尝试过手动完成。效果很好(#1)我尝试了代码(#2)以获得更好的性能,但它只返回最后一列。

1


import pandas as pd
import numpy as np
a1T=[([7,8,9]),([10,11,12]),([13,14,15])]
a2T=[([1,2,3]),([5,0,2]),([3,4,5])]
print (a1T)
#Output[[7, 8, 9], [10, 11, 12], [13, 14, 15]]
vis1=np.array (a1T)
vis_1_1=vis1.T
tmp2=np.array (a2T)
tmp_2_1=tmp2.T
X=np.column_stack([vis_1_1, tmp_2_1])
dataset_all = pd.DataFrame({"Visab1":X[:,0], "Visab2":X[:,1], "Visab3":X[:,2], "Temp1":X[:,3], "Temp2":X[:,4], "Temp3":X[:,5]})
print (dataset_all)
Output: Visab1 Visab2 Visab3 Temp1 Temp2 Temp3
0 7 10 13 1 5 3
1 8 11 14 2 0 4
2 9 12 15 3 2 5

> Actually I have varying number of columns in dataframe (500-1500), thats why I need auto generated column names. Extra index (1, 2, 3) after name Visab_, Temp_ and so on - constant for every case. See code below.
For better perfomance I tried

code<br>
#2
n=3 # This is varying parameter. The parameter affects the number of columns in the table. 
m=2 # This is constant for every case. here is 2, because we have "Visab", "Temp"
mlist=('Visab', 'Temp')
nlist=[range(1, n)]
for j in range (1,n):
for i in range (1,m):
col=i+(j-1)*n
dataset_all=pd.DataFrame({mlist[j]+str(i):X[:, col]})
I expect output like

Visab1 Visab2 Visab3 Temp1 Temp2 Temp3
0 7 10 13 1 5 3
1 8 11 14 2 0 4
2 9 12 15 3 2 5

but there is not any result (only error expected an indented block)

最佳答案

好的,那么列数 n 就是每个列表中子列表的数量,对吗?您可以使用 len 来测量:

len(a1T)
#Output
3

我将简化上面的答案,这样您就不需要 X 并添加自动列名创建:

my_lists = [a1T,a2T]
my_names = ["Visab","Temp"]

dfs=[]
for one_list,name in zip(my_lists,my_names):
n_columns = len(one_list)
col_names=[name+"_"+str(n) for n in range(n_columns)]
df = pd.DataFrame(one_list).T
df.columns = col_names
dfs.append(df)

dataset_all = pd.concat(dfs,axis=1)

#Output
Visab_0 Visab_1 Visab_2 Temp_0 Temp_1 Temp_2
0 7 10 13 1 5 3
1 8 11 14 2 0 4
2 9 12 15 3 2 5

关于python - 从多个列表列表创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57019471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com