我有一个很大的数据框需要按列转换列表。有两种方法不能满足要求。
那么,有什么方法可以做到吗? 我有假代码,它无法运行。
dataSpectrum = pd.read_excel(DataDir, sheetname=r'xxxx.xlsx')
for i in range(dataSpectrum.iloc[0,:].count()):
y = dataSpectrum.iloc[1:,i]
l[i] = y.tolist()
答案 0 :(得分:1)
我相信您正在寻找从原始的转置创建列表的列表。
data = dataSpectrum.T.values.tolist()
df
A B C D E
0 9 5 16 4 1
1 7 2 16 30 13
2 7 5 3 2 16
3 5 15 11 23 5
4 3 1 1 4 6
5 3 14 4 0 14
6 5 1 10 21 5
7 9 17 11 10 8
8 6 11 20 6 6
9 21 4 3 4 9
df.T
0 1 2 3 4 5 6 7 8 9
A 9 7 7 5 3 3 5 9 6 21
B 5 2 5 15 1 14 1 17 11 4
C 16 16 3 11 1 4 10 11 20 3
D 4 30 2 23 4 0 21 10 6 4
E 1 13 16 5 6 14 5 8 6 9
data = df.T.values.tolist()
data
[[9, 7, 7, 5, 3, 3, 5, 9, 6, 21],
[5, 2, 5, 15, 1, 14, 1, 17, 11, 4],
[16, 16, 3, 11, 1, 4, 10, 11, 20, 3],
[4, 30, 2, 23, 4, 0, 21, 10, 6, 4],
[1, 13, 16, 5, 6, 14, 5, 8, 6, 9]]
您也可以先拨打.values
,然后转置。
data = dataSpectrum.values.T.tolist()
这给了你同样的东西。
另外,一个小挑剔 -
您可以对df.columns
进行迭代,我推荐df.iloc[0, :].count()
。
for c in df.columns:
df[c].tolist()