CSVファイルのheader行数が分からない場合
現在、サーバー上にある複数のcsvファイルにアクセスして必要なデータを取得する作業を行なっています。
発生している問題
サーバー上のurlにアクセスしてcsvファイルを読み取る際、ファイルによってheader列が微妙に異なる場合があります。
そのため、頻繁にエラーを起こして(うまくindexが読み取れずに)しまいます。
肝心なデータ部分の前には必ず、
data: a, b, c, d, e 0, 0, 0, 0, 0
のように data:の文字が含まれているため、これを目印にしてheaderを読み取ろうとしていますが、どうもうまくいきません。
いくつか試した方法として、かなり無理矢理なのですが、
python
1import pandas as pd 2temp = pd.read_table(url, header=None) 3i = 0 4while True: 5 if temp.loc[i][0][:5]=='data:': 6 break 7 else: 8 i += 1
ここで出てきたiを使って、read_csv(url, header=i+1)とすると、カラムサイズが違う旨のエラーメッセージが出ました。これでダメだったのが一番困っています。header中にある空白行が悪さをしているのでしょうか...?
加えて、requestsモジュールを使って
python
1resp = requests.get(url) 2txt = resp.text
としてなんとかindexを見出そうとしたのですが、断念いたしました。
可能であれば、ファイルをダウンロードせずに行いたいです。
もし何かいい方法をご存知の方がいらっしゃいましたら、ご教授いただけますでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/13 05:10