2017-04-06 7 views
0

おはよう!私はtxtファイルからデータフレームを作成したいと思います。それはhttps://ready.arl.noaa.gov/readyou/174479_METGRAM.TXTです。テキストファイルには、次のとおりです。ARL NOAAからtxtファイルを読むには

HR    
0  + 0. 13.0 3.3 51.50 0.0 97.4 0.0 0.0 7.0   
1  + 3. 21.7 4.8 33.00 0.0 90.5 0.0 0.0 4.8   
2  + 6. 30.6 0.3 14.30 0.0 57.8 0.0 0.0 3.3 
.  
.  
51 +153. 31.2 -2.3 11.3 0.00 5.1 20.1 -0.9 1.7 
52 +156. 28.5 -0.5 15.2 0.00 12.2 86.0 -4.5 1.4 

私はデータを読む:

DF = pd.read_table(」https://ready.arl.noaa.gov/readyou /174479_METGRAM.TXT',skiprows=1,sep='\s+',header=None)

 0  1  2  3  4  5  6  7  8  9   
0 +  0.0 13.0 3.3 51.50 0.0 97.4 0.0 0.0 7.0   
1 +  3.0 21.7 4.8 33.00 0.0 90.5 0.0 0.0 4.8   
2 +  6.0 30.6 0.3 14.30 0.0 57.8 0.0 0.0 3.3  
.   
.   
. 
51 +153. 31.2 -2.3 11.3 0.00 5.1 20.1 -0.9 1.7 NaN 
52 +156. 28.5 -0.5 15.2 0.00 12.2 86.0 -4.5 1.4 NaN 
53 +159. 17.6 1.9 34.9 0.17 0.5 126.2 -26.3 5.6 NaN 

私はこれを取得するようになる:

 0  1  2  3  4  5  6  7  8    
0 +0.0 13.0 3.3 51.50 0.0 97.4 0.0 0.0 7.0   
1 +3.0 21.7 4.8 33.00 0.0 90.5 0.0 0.0 4.8   
2 +6.0 30.6 0.3 14.30 0.0 57.8 0.0 0.0 3.3  
.   
.   
. 
51 +153. 31.2 -2.3 11.3 0.00 5.1 20.1 -0.9 1.7 
52 +156. 28.5 -0.5 15.2 0.00 12.2 86.0 -4.5 1.4 
53 +159. 17.6  1.9 34.9 0.17 0.5 126.2 -26.3 5.6 

は、どのように私はこれを得ることができますか?

+1

174479_METGRAM.TXTのスニペットを投稿してください。リンクが壊れているようです。 – unutbu

+0

データの抽出を入れました – user1345283

答えて

0

各列が2つ以上のスペースで区切られている場合は、regex pattern\s{2,}を使用してデータを解析できます。例えば、

df = pd.read_table('https://ready.arl.noaa.gov/readyou /174479_METGRAM.TXT', 
        skiprows=1, sep='\s{2,}',header=None) 

列の一部にのみ、それらの間の1つのスペースを持っている場合は、まだ+ 0.は、あなたが正規表現パターン(?<![+-])\s+を使用することができ、単一の値として認識されなければなりません。この正規表現は、に先行していない1つ以上のスペースに一致します。したがって、数字の間の単一のスペースはセパレータとして認識されますが、+0.の間のスペースは、このスペースの前にプラス記号があるため、セパレータとみなされません。

カラムがタブで区切られている場合は、1つ以上のタブに一致する正規表現パターン\t+でカラムセパレータを指定できます。あなたが投稿したスニペットはセパレータとしてタブを使用しているようには見えませんが、貼り付けプロセス中にタブが何らかの形でスペースに変換された場合に備えてこのことを言及したいと思います。

関連する問題