如何将大数据帧列转换为列表?

时间:2017-10-22 11:43:57

标签: python pandas

我有一个很大的数据框需要按列转换列表。有两种方法不能满足要求。

  1. dataFrame.values(),此方法逐行转换。
  2. dataFrame [' headname'],我有大数据框,有很多列,它是 低效的。
  3. 那么,有什么方法可以做到吗? 我有假代码,它无法运行。

    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()
    

1 个答案:

答案 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()