Python read_csvで柔軟に読み込む主要引数一覧「pandas」

'21/09/09更新
 本記事では、テキストファイルを柔軟に読み込むために、read_csv()の主要引数オプションの雛形コードを載せました。
 データのテキストファイルの列間はカンマ、もしくはタブやスペースなど様々な方法で区切られます。また、データの開始行が1行目とは限らず2, 3行目等の場合のデータに出くわすこともあり得るかと思います。そんなあらゆるデータテキストファイルでもpandasデータフレーム形式で読み込みます。

■本プログラム

# データセットを読み込む
import os
import pandas as pd
file_path = './auto-mpg.data'
file_name = os.path.splitext(os.path.basename(file_path))[0]
column_names = ['MPG','Cylinders','Displacement','Horsepower','Weight',
                'Acceleration', 'Model Year', 'Origin'] 
# テキストファイルをpandasのDataFrame型で読み込む
df = pd.read_csv(
    file_path, # ファイルパス
    names = column_names, # 列名を指定
    na_values ='?', # ?は欠損値として読み込む
    comment = '\t', # TAB以降右はスキップ 
    sep = ' ', # 空白行を区切りとする
    skipinitialspace = True, # カンマの後の空白をスキップ  
#skiprows = [1, 2] # 飛ばしたい行をリストで指定
#header = 0, # ヘッダー行を指定
   #nrows = 5, # 読み込む行数
  encoding = 'utf-8', # 'utf-8' 'shift-jis' 'cp932' ) print(df.head(20))

  この雛形コード中にある「auto-mpg.data」は、UCI Machine Learning RepositoryにあるAuto MPGと呼ぶデータセットで下記リンク先から無料で入手できます。これは、回帰分析用のデータで1970年代後半から1980年台初めの自動車の燃費を目的関数として、気筒数、排気量、馬力、重量などを説明変数としています。

archive.ics.uci.edu

下図は、そのデータ(テキストファイル)をWindows環境下のサクラエディタで表示したものです。列間はスペースで区切られ、最終列はタブで区切られていることがわかります。更に列名はありません。このようなヘンテコな書式のデータであってもpythonのライブラリpandasで楽々読み込むことが出来ます。

f:id:HK29:20201115235105p:plain

本コードを実行すると下図のようにpandasのDataFrame形式で読み込みます。

f:id:HK29:20201115235944p:plain

(参考)本ブログのpandasに関するリンクは下記です。pandasで読み込みさえすれば、あとは自由自在に操作するだけです。

hk29.hatenablog.jp

以上

<広告>