以下の内容はhttps://pydocument.hatenablog.com/entry/2023/03/29/225859より取得しました。


Python pandasでTSVファイルを読み込む方法

この記事では、Python のデータ分析ライブラリ pandas を使用して TSV ファイルを読み込み、データフレームとして扱う方法を解説します。TSV ファイルはタブ区切り形式のテキストファイルで、データベースやスプレッドシートのデータ交換によく利用されます。

pandas とは

pandas は、データ分析や操作を効率的に行うための Python ライブラリです。表形式のデータを扱うデータフレームというデータ構造を中心に、データの読み込み、加工、集計、可視化などの機能を提供します。

pydocument.hatenablog.com

前提条件

  • Python 3.x がインストールされていること
  • pandas ライブラリがインストールされていること

pandas がインストールされていない場合は、下記のコマンドでインストールしてください。

pip install pandas

基本的な TSV ファイルの読み込み

最も基本的な TSV ファイルの読み込みは、pandas.read_csv() 関数を使用し、区切り文字としてタブ \t を指定します。

1. pandas のインポート

import pandas as pd

データ分析を行う準備として pandas ライブラリをインポートします。

2. TSV ファイルの読み込み

df = pd.read_csv('data.tsv', sep='\t')

read_csv() 関数の第一引数にファイルパスを指定し、sep 引数にタブ文字 \t を指定します。読み込んだデータは df という名前のデータフレームに格納されます。delimiter='\t' としても同じ結果が得られます。

read_csv()関数は、デフォルトでは区切り文字がカンマ (,) になっています。TSV ファイルの場合は必ずタブ区切りを指定します。

サンプルコード

以下のような内容の data.tsv ファイルを例に、データの読み込みと同時に内容を確認します。

サンプルデータ(data.tsv

name    age gender
Alice   20  Female
Bob 25  Male
Charlie 30  Male

列名(ヘッダー)は、name,age,genderです。

サンプルコード

import pandas as pd

# TSVファイルを読み込む
df = pd.read_csv('data.tsv', sep='\t')

# 最初の5行を表示
print(df.head())

# データフレームの情報を表示
print(df.info())

df.head() でデータフレームの先頭部分(デフォルトでは5行)を表示し、df.info() で各列のデータ型や欠損値の有無などの情報を確認できます。

出力例

      name  age  gender
0    Alice   20  Female
1      Bob   25    Male
2  Charlie   30    Male

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   name    3 non-null      object
 1   age     3 non-null      int64
 2   gender  3 non-null      object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes
None

応用: 様々な形式のTSVファイルの読み込み

read_csv() 関数は、様々なオプションを指定することで、より複雑な形式の TSV ファイルにも対応できます。

ヘッダーがない場合

ヘッダー行がない TSV ファイルの場合は、header=None を指定します。列には自動的に0から始まる連番が付与されます。

import pandas as pd

df = pd.read_csv('no_header.tsv', sep='\t', header=None)
print(df)

列名を指定したい場合

ヘッダーがないファイルに列名を与えたい場合は、names オプションで列名のリストを指定します。

import pandas as pd

df = pd.read_csv('no_header.tsv', sep='\t', header=None, names=['ID', 'Name', 'Score'])
print(df)

特定の列だけを読み込む

usecols オプションで、読み込む列をリストまたは列番号で指定できます。

import pandas as pd
# 列名で指定
df = pd.read_csv('data.tsv', sep='\t', usecols=['name', 'age'])

#列番号で指定
df = pd.read_csv('data.tsv', sep='\t', usecols=[0, 1])
print(df)

読み飛ばす行を指定する

skiprows オプションを使用すると、ファイルの先頭から指定した行数だけ読み飛ばすことができます。 コメント行がある場合や、データの開始位置がファイル先頭でない場合に便利です。

import pandas as pd

# 先頭の2行をスキップ
df = pd.read_csv('data_with_comments.tsv', sep='\t', skiprows=2)
print(df)

読み込む行数を制限する

nrowsオプションを使用すると指定した行数だけ読み込みます。 大きなファイルを扱う際に、試しに一部だけを読み込んで処理を試す場合などに有用です。

import pandas as pd

# 先頭の100行だけ読み込み
df = pd.read_csv('large_data.tsv', sep='\t', nrows=100)
print(len(df))

Pandas read_csv()の主要なパラメータ

オプション 説明
sep 区切り文字を指定します。TSV ファイルの場合は \t (タブ) を指定します。
header ヘッダー行の指定。None でヘッダーなし、整数でヘッダー行のインデックスを指定します。デフォルトは infer (自動判別) です。
names 列名のリストを指定します。header=None と共に使用します。
usecols 読み込む列をリストまたは列番号で指定します。
skiprows ファイルの先頭から読み飛ばす行数を指定します。
nrows 読み込む行数を指定します。
dtype 列ごとにデータ型を指定できます。 例:dtype={'age': int, 'gender': str}

Pandasのread_csv()については下記の記事でより詳しく解説しています。

pydocument.hatenablog.com

より詳細な情報は pandas の公式ドキュメントを参照してください。

pandas.read_csv — pandas 公式ドキュメント

[PR]

click.linksynergy.com

click.linksynergy.com

click.linksynergy.com

click.linksynergy.com




以上の内容はhttps://pydocument.hatenablog.com/entry/2023/03/29/225859より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14