Data Wrangling

Pandasへのテキストデータの効率的な読み込み

Spread the love

Pandasは、データ操作と分析のための強力なPythonライブラリであり、テキストファイルからのデータ読み込みは基本的なタスクです。この記事では、さまざまなテキスト形式のデータをPandas DataFrameにインポートするための効率的な方法を探ります。

目次

1. read_csv()を使用したCSVおよび区切りファイルの読み込み

read_csv()関数は、コンマ区切り値(CSV)ファイルのインポートにおいて主力です。その汎用性は、sepまたはdelimiterパラメータを使用して区切り文字を指定することで、他の区切りファイルにも及びます。その機能を探っていきましょう。


import pandas as pd

# CSVファイルの読み込み
df_csv = pd.read_csv("data.csv")
print(df_csv.head()) # 可読性を高めるため、head()を使用して最初の数行のみ表示

# タブ区切りファイルの読み込み
df_tsv = pd.read_csv("data.tsv", sep="t")
print(df_tsv.head())

# 区切り文字としてパイプを使用するファイルの読み込み
df_pipe = pd.read_csv("data.txt", delimiter="|")
print(df_pipe.head())

基本的な読み込み以外にも、read_csv()は詳細な制御のための強力なパラメータを提供します。

  • sepまたはdelimiter:区切り文字を指定します(デフォルトは’,’)。
  • header:列名の行番号(デフォルトは0、ヘッダーがない場合はNoneを使用)。
  • names:ヘッダー行がない場合の列名リスト。
  • index_col:DataFrameのインデックスとして使用する列。
  • usecols:パフォーマンスを向上させるために特定の列を選択します。
  • nrows:大きなファイルのプレビューのために最初のn行のみを読み込みます。
  • skiprows:先頭で指定された行をスキップします。
  • encoding:ファイルのエンコーディングを指定します(例:’utf-8’、’latin-1’)。
  • dtype:列のデータ型を指定します。
  • comment:コメント行を示す文字。

2. read_fwf()を使用した固定幅ファイルの処理

read_fwf()(read fixed-width formatted)メソッドは、列が区切り文字ではなく固定幅で定義されているファイルにとって重要です。これはレガシーシステムでは一般的です。


import pandas as pd

# 列幅の定義
colspecs = [(0, 10), (10, 20), (20, 30)]  # 列の幅はそれぞれ10文字

# 固定幅ファイルの読み込み
df_fwf = pd.read_fwf("data_fwf.txt", colspecs=colspecs, header=None)
df_fwf.columns = ['Column1', 'Column2', 'Column3']

print(df_fwf.head())

read_fwf()の主要なパラメータには、以下のものがあります。

  • colspecs:列の開始位置と終了位置を定義するタプルのリスト。
  • widthscolspecsの代替として、列幅のリストを提供します。
  • header:ヘッダーの行番号(read_csv()と同じ)。
  • names:列名を提供します(read_csv()と同じ)。

3. タブ区切りファイルおよびその他の区切りファイルに対するread_table()の使用

read_table()read_csv()とほぼ同等であり、デフォルトでタブ(t)区切りを使用します。タブ区切りファイル(TSV)に最適ですが、sepパラメータを指定することで他の区切り文字も処理できます。read_csv()と同じすべてのパラメータを共有し、同様の柔軟性を提供します。


import pandas as pd

# タブ区切りファイルの読み込み
df_table = pd.read_table("data.tsv")
print(df_table.head())

# 別の区切り文字の指定
df_table_custom = pd.read_table("data.txt", sep="|")
print(df_table_custom.head())

Pandasは、さまざまなテキストファイル形式からデータを効率的にインポートするための堅牢なツールを提供します。適切な方法の選択は、データの構造によって異なります。読み込み後には、エンコーディングの問題に対処し、欠損値を処理することを忘れないでください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です