2017-10-22 11 views
0

私は大きなデータフレームを列ごとにリストを変換する必要があります。要件を満たすことができない2つの方法があります。大きなデータフレーム列をリストに変換するには?

  1. dataFrame.values()、このメソッドは行ごとに変換されます。
  2. dataFrame ['headname']、私は大きなdataFrameがあり、多くの列があり、それは 非効率です。

だから、どんな方法でもできますか? 私は偽のコードを持っています、それは実行できません。

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

。あなたの質問に答えられたら、[回答を受け入れてください](https://stackoverflow.com/help/someone-answers)してください。答えの横にある灰色のチェックをクリックすると、緑色に切り替わります。ありがとう。 –

答えて

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

これはあなたに同じことを与えます。また

、マイナーnitpick -

  • あなたは、私がdf.iloc[0, :].count()上でお勧めしたいdf.columns、を反復処理することができます。あなたはそれを見ていないように見えることから、改めて表明

    for c in df.columns: 
        df[c].tolist() 
    
関連する問題