2016-04-25 16 views
1

私は、複数のCSVテーブルを持つファイル(例を示します)を持っています。このファイルはデータベースにアップロードされます。このファイルについていくつかの操作をしたいと思います。そのために、私はパンダを使ってread_csv関数を使って各テーブルを別々のデータフレームに読み込むことを考えていました。しかし、ドキュメントを読むと、読み込み/解析する行のサブセットを指定するオプションはありませんでした。これは可能ですか?そうでない場合は、他の選択肢がありますか?パンダ:read_csv(複数のテーブルを1つのファイルに読み込み)

サンプルファイル:

TABLE_1 
col1,col2 
val1,val2 
val3,val4 

TABLE_2 
col1,col2,col3,col4 
val1,val2,val3,val4 
... 

... 

Iは、各テーブルの開始/終了ラインを決定するために、ファイルを介して最初のパスを行うことができます。しかし、read_csv引数の1つは "filepath_or_buffer"ですが、私は 'buffer'部分が何であるかは完全にはわかりません。それは文字列か大きな文字列か他の何かのリストですか?バッファに何を使用できますか?誰かが、バッファでread_csvを使用する小さな例を私に指摘することはできますか?任意のアイデアをありがとう。

+2

' 'skip'と' nrow'引数を使用してread.csv'でこの種類のファイルを読み取ることが可能です。最初のステップは 'readLines'を実行してテーブル間のギャップを見つけることです。一貫性がある場合に役立ちます。 –

答えて

1

UPDATE:あなたが@としてskiprowsnrowsパラメータを使用することができます100行以下の最初の2行と読書をスキップする

df = pd.read_csv(filename, header=None, 
       names=['col1','col2','col3'], skiprows=[0,1,5,16,57,58,59]) 

あなたが特定の行[0,1,5,16,57,58,59]をスキップしたい場合は、skiprows使用することができますリチャードテルフォードコメントに記載:

df = pd.read_csv(filename, header=None, names=['col1','col2','col3'], 
       skiprows=2, nrows=100) 

ここでは "buの小さな例ですffer ":ヘッダなしの

import io 
import pandas as pd 

data = """\ 
     Name 
0 JP2015121 
1 US14822 
2 US14358 
3 JP2015539 
4 JP2015156 
""" 
df = pd.read_csv(io.StringIO(data), delim_whitespace=True, index_col=0) 
print(df) 

同じ:

data = """\ 
0 JP2015121 
1 US14822 
2 US14358 
3 JP2015539 
4 JP2015156 
""" 
df = pd.read_csv(io.StringIO(data), delim_whitespace=True, index_col=0, 
       header=None, names=['Name']) 
関連する問題