2017-12-01 77 views
3

私は列名を示すヘッダを持つcsvデータファイルを持っています。Pythonのnumpy配列の列名を取得

xy wz hi kq 
0 10 5 6 
1 2 4 7 
2 5 2 6 

私が実行します。

X = np.array(pd.read_csv('gbk_X_1.csv').values) 

私は、列名を取得したい:

['xy', 'wz', 'hi', 'kg'] 

私はこのpostを読むが、解決策なしで私を提供します。

+0

np.genfromtxt()およびnames = Trueオプションが役に立つ場合があります。 https://stackoverflow.com/questions/12336234/read-csv-file-to-numpy-array-first-row-as-strings-rest-as-float – dkato

+0

私はあなたが必要と思う 'pd.read_csv( 'gbk_X_1 .csv ')。columns.tolist() ' – jezrael

+0

構造化配列を取得するか、構造化配列から名前を取得するのに問題はありますか?後者の場合: 'list(x.dtype.fields)'。 –

答えて

3

は、次のコードを使用します。

import re 

f = open('f.csv','r') 

alllines = f.readlines() 
columns = re.sub(' +',' ',alllines[0]) #delete extra space in one line 
columns = columns.strip().split(',') #split using space 

print(columns) 

をCSVファイルには、このようなものですと仮定:

xy wz hi kq 
0 10 5 6 
1 2 4 7 
2 5 2 6 
+1

私は編集します私のコード!私の答えをもう一度チェックしてください – Ahmad

1

は、データフレームが今

df 

    xy wz hi kq 
0 0 10 5 6 
1 1 2 4 7 
2 2 5 2 6 

のように見えるその後

df = pd.read_csv('gbk_X_1.csv') 

データフレームにファイルをダンプするpd.read_csvを使用してそれは三つの主要だのは、あなたのcsvファイルが

xy,wz,hi,kq 
0,10,5,6 
1,2,4,7 
2,5,2,6 

のように見えると仮定しましょうコンポーネントは、

あなたはあなたがアクセスすることができます

df.index 

RangeIndex(start=0, stop=3, step=1) 
  • index属性を経由してアクセスすることができますvalues属性

    df.values 
    
    array([[ 0, 10, 5, 6], 
         [ 1, 2, 4, 7], 
         [ 2, 5, 2, 6]]) 
    
  • インデックスを経由してアクセスすることができます

    • データ経由属性

      df.columns 
      
      Index(['xy', 'wz', 'hi', 'kq'], dtype='object') 
      

    あなたがリストとして列をしたい場合は、to_listメソッドを使用し

    df.columns.tolist() 
    
    ['xy', 'wz', 'hi', 'kq'] 
    
  • 関連する問題