CSV登録されているデータをループ処理し、スクレイピングしていく際にCSVの読み込み方が問題になることがあります。
主に文字コードなどが原因になると思いますが、そこで役立つCSVの読み込み方を一覧化しておきます。
覚えきれませんからね…。
読み込むCSVはなんでもいいのですが、Python上でダミーデータが作れるとプログラムでエラーが出た時のテストにも便利です。
そのためダミーデータの作成方法もメモしています。
codecs — Codec registry and base classes — Python 3.9.7 documentation
PandasによるCSV読み込み|shift-jis
文字コードの指定読み込み、shift-jis版。
Windows環境からデータを受け取るとこの形式かと。
import pandas as pd df = pd.read_csv('1m.csv', encoding='shift-jis') print(df) print(df.columns)
PandasによるCSV読み込み|utf-8
df = pd.read_csv('1m.csv', encoding='utf-8') print(df)
PandasによるCSV読み込み|euc_jp
df = pd.read_csv('1m.csv', encoding='euc_jp') print(df)
データの区切り文字を指定する方法
カンマ区切りの場合。
df = pd.read_csv('1m.csv', sep=',') print(df)
ヘッダー(見出し)がないデータを読み込む場合
ヘッダーがあるデータでこの指定をすると、本来のヘッダーであった一行目がデータ一行目になり、ヘッダーとしては新しく連番のヘッダーが付与される。
df = pd.read_csv('1m.csv', header=None) print(df)
0 1 2 0 NaN ID Name 1 0.0 0 aq4bZUmJsA 2 1.0 1 98u4efc3pi 3 2.0 2 aOtVV3Jccb 4 3.0 3 R4ZXxjtqY8 ... ... ... ... 96 95.0 95 P8UgtD3HtK 97 96.0 96 T8V9KLDKQs 98 97.0 97 pM8QhicUel 99 98.0 98 rOSK9raOYj 100 99.0 99 P1dJeTREPa 101 rows × 3 columns
インデックスを指定する
大量のデータを扱う際に、インデックス名を指定することがあります。
df = pd.read_csv('to_csv.csv', index_col=2) print(df)
Unnamed: 0 ID Name aq4bZUmJsA 0 0 98u4efc3pi 1 1 aOtVV3Jccb 2 2 R4ZXxjtqY8 3 3 sQIobE08kz 4 4 ... ... ... P8UgtD3HtK 95 95 T8V9KLDKQs 96 96 pM8QhicUel 97 97 rOSK9raOYj 98 98 P1dJeTREPa 99 99 100 rows × 2 columns
PandasによるCSV読み込み|速度面の問題解決
後日
当サイトはリンクフリーです。
ご自身のブログでの引用、TwitterやFacebook、Instagram、Pinterestなどで当サイトの記事URLを共有していただくのは、むしろありがたいことです。
事前連絡や事後の連絡も不要ですが、ご連絡いただければ弊社も貴社のコンテンツを紹介させていただく可能性がございます。