2017-10-15 2 views
1

測定値からいくつかの列を持つ.txtファイルがあります。 これらの値はセンサからのものであり、列数はとは必ずしも同じではないです。 、Pythonでpandasを使用して複数の列ファイルを変数としてインポートする

1,09666671875554 1,01333338146408 1,70666674772898 -8:

ファイル構造は、(それがそうで約40センサー、日付の記述から「ゴミ」のラインとを持っている)、このようになります36548137664795 69,9546508789063 1,09666671875554 1,01333338146408 1,70666674772898

各ファイルに含まれる列の数を知り、後で各列を変数としてインポートするスクリプトを作成したいとします。たとえば、列1は次のようになります。 "a"、カラム2 - > "b"、カラム3 - > "c"などと呼ばれます。

は、これまでのところ、私は唯一の変数にすべてのデータをインポートすることができました:

import pandas as pd 

test=pd.read_csv(filename, sep='/s+', lineterminator='\r',skiprows=40,engine='python',index_col=0) 

出力は、私は、WindowsのPC上でアナコンダを使用しています。この

Out[3]: 

Empty DataFrame 

Columns: [] 

Index: [1,10666671923051 1,02333338193906 1,71666674820396 -8,34606075286865 69,9546813964844 1,10666671923051 1,02333338193906  

ようになります。誰も私にこの問題の助けを与えることができますか?

ありがとうございます!

答えて

0
デフォルトの列名の

使用パラメータheaderから0,1,2..、その後rename彼らにdictionaryによって:

import string 
#dict for map columns 
d = dict(zip(range(26), list(string.ascii_lowercase))) 
print (d) 
{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h', 
8: 'i', 9: 'j', 10: 'k', 11: 'l', 12: 'm', 13: 'n', 14: 'o', 
15: 'p', 16: 'q', 17: 'r', 18: 's', 19: 't', 20: 'u', 
21: 'v', 22: 'w', 23: 'x', 24: 'y', 25: 'z'} 


test=pd.read_csv(filename, 
       sep='/s+', 
       lineterminator='\r', 
       skiprows=40, 
       engine='python', 
       index_col=0, 
       header=None) 

test = test.rename(columns=d) 
+0

ありがとうございます。 _df_は以前に定義されていません。それは_d_であるはずですか? –

+0

申し訳ありませんが、私はテストだと思う;) – jezrael

+0

私は今答えを編集する、それを確認してください。 – jezrael

0

OK! 私はこれを次のように解決しました:

import string 
#dict for map columns 
d = dict(zip(range(26), list(string.ascii_lowercase))) 
print (d) 
{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h', 
8: 'i', 9: 'j', 10: 'k', 11: 'l', 12: 'm', 13: 'n', 14: 'o', 
15: 'p', 16: 'q', 17: 'r', 18: 's', 19: 't', 20: 'u', 
21: 'v', 22: 'w', 23: 'x', 24: 'y', 25: 'z'} 



test=pd.read_csv(filename,sep='\s+',skiprows=40,engine='python',names=d, header=None, decimal=',') 
test = test.rename(columns=d) 

#clear data that is not needed 
test.dropna(axis=1, how='all') 
関連する問題