LoginSignup
11
17

More than 1 year has passed since last update.

csvデータの形がいびつでpandasで読み込みにくい場合の対処法

Posted at

csvデータの形がいびつで読み込みにくい場合の対処法

pandasを利用したcsvデータの読み込みで躓いてしまったことがありました。
ちょびっと時間を溶かしてしまったので備忘録としてここに残します。

計測器のメーカーや種類によって、大量のヘッダーやフッター、計測条件などが計測したcsvデータの中に入っていることが多いです。
計測条件は用途によって形が変わり、何行、何列で記載されているかは、csvデータを開いてみないとわからないです。
開ける場合は開いて解決で良いのですが、システムを作ってどんなcsvが来てもエラーで止まらずにとりあえず読み込みたい場合もあります。

なにも考えずにpandasに流し込むとこんなエラーで叱られて中身が確認できない場合があります。

[code]
import pandas as pd
path = "test.CSV"
df = pd.read_csv(path,encoding='shift-jis')

[output]
ParserError: Error tokenizing data. C error: Expected 2 fields in line 5, saw 10

ところが、
あらかじめ列名を適当に作って、namesで与えてあげると読み込むことが可能になります。

[code]
import pandas as pd
path = "test.CSV"

col_name = range(1,15,1)
df = pd.read_csv(path, names=col_name,encoding='shift-jis')
_df = df.fillna('')
_df.head(7)

[output]
1   2   3   4   5   6   7   8   9   10  11  12  13  14
0   #BeginHeader    47                                              
1   #FormatType ***                                             
2   #FormatVersion  R1.00.00                                                
3   タイトル                                                    
4   ユニット番号  MASTER  UNIT1   UNIT2   UNIT3   UNIT4   UNIT5   UNIT6   UNIT7   UNIT8               
5   ユニット種別  *** (1)**   (2)**   未設定   未設定   未設定   未設定   未設定   未設定               
6   計測モード ノーマルモード       

NaNだらけなので、適当にfillnaで埋めています。
あとは煮るなり焼くなり自由です。

11
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
17