16
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have 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で埋めています。
あとは煮るなり焼くなり自由です。

16
19
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
16
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?