Pythonのpandasライブラリは、バイオインフォマティクスにおけるデータ解析に欠かせないツールです。遺伝子発現データ、メタデータ、シーケンス情報など、多次元かつ大量のデータを柔軟に扱うための機能が豊富に揃っています。
この記事では、pandasの基本的な使い方の中でも、「データ参照(インデックス・スライス・条件抽出など)」から「属性参照(カラム操作やデータ型の確認など)」までを、基礎から応用まで体系的に紹介します。バイオデータ解析の実務にも応用できる内容を目指します。
1. pandasの基礎構造
まずpandasの基本的なデータ構造をおさらいしましょう。
- Series:1次元のラベル付き配列(ベクトル)
- DataFrame:2次元の表形式データ(行×列)
たとえば、以下は簡単なDataFrameの例です:
import pandas as pd
df = pd.DataFrame({
"Gene": ["BRCA1", "TP53", "EGFR"],
"Expression": [2.5, 8.1, 5.3]
})
2. データ参照の基本:行・列の選択
2.1 列(カラム)の参照
df["Gene"]
これは"Gene"
列(Series型)を返します。複数列を取得したい場合は、リストで指定します:
df[["Gene", "Expression"]]
2.2 行の参照(インデックス番号で)
df.iloc[0] # 最初の行を取得
.iloc
は行番号(整数)で参照するインデックスです。
2.3 行の参照(ラベルで)
df.set_index("Gene", inplace=True)
df.loc["BRCA1"]
.loc
はインデックスラベル(この例では”Gene”列の値)で参照します。
3. データ参照の応用:条件抽出やスライス
3.1 条件に一致する行を抽出
df[df["Expression"] > 5.0]
Expression
が5.0を超える遺伝子のみを抽出します。バイオインフォマティクスでは、発現量が高い遺伝子のフィルタリングによく使います。
3.2 複数条件の組み合わせ
df[(df["Expression"] > 5.0) & (df.index != "TP53")]
論理演算子 &
(かつ), |
(または), ~
(否定)を組み合わせて複雑な条件を作れます。
4. 属性参照とは何か?
pandasオブジェクト(DataFrameやSeries)には、いくつかの**属性(プロパティ)**があります。これらは「メソッド(関数)」とは違い、呼び出し時に ()
を付けずに使う情報参照です。
4.1 基本的な属性一覧
属性 | 内容 |
---|---|
.shape | 行数と列数のタプル |
.columns | 列名の一覧(Index型) |
.index | 行のインデックス(Index型) |
.dtypes | 各列のデータ型 |
.values | 実データ(NumPy配列として) |
例:
print(df.shape) # (3, 1)
print(df.columns) # Index(['Expression'], dtype='object')
print(df.index) # Index(['BRCA1', 'TP53', 'EGFR'], dtype='object')
print(df.dtypes) # Expression float64
print(df.values) # array([[2.5], [8.1], [5.3]])
バイオインフォマティクスの解析では、行数=遺伝子数、列数=サンプル数や属性数ということが多いため、shape
の確認はとても重要です。
5. 属性参照の応用例
5.1 遺伝子一覧(index)の取得
gene_list = df.index.tolist()
リストに変換することで、forループなどで使いやすくなります。
5.2 データ型によるフィルタリング
df.select_dtypes(include='float')
数値型のカラムだけを抽出できます。多次元のバイオデータ(例えば、RNA-seqのTPM値)を扱うときに便利です。
5.3 列のリネーム
df.rename(columns={"Expression": "TPM"}, inplace=True)
解析目的に応じて列名を変更すると、可読性が上がります。
6. まとめ:参照と属性を自在に使いこなそう
pandasは単なる表データ操作ライブラリではなく、バイオインフォマティクスの複雑な解析フローの中核を担うツールです。
テーマ | 活用場面の例 |
---|---|
データ参照 | 特定遺伝子の発現量の抽出、条件付きデータ選択 |
スライス | 一部サンプルのデータだけを取り出す |
条件抽出 | 高発現遺伝子のみを対象とする解析 |
属性参照 | 行数・列数・型情報を動的にチェック |
index活用 | 遺伝子名やサンプルIDをキーにした操作 |
pandasのデータ参照
と属性参照
を自在に使いこなすことで、スクリプトの保守性と再利用性が格段に向上します。特に、再現性のあるバイオデータ解析を行うには、データ構造の理解と適切な操作が不可欠です。
今後の記事では、groupbyやmerge、pivotなど、より発展的な操作についても紹介していく予定です。まずは基本の「参照」と「属性」をマスターして、あなたのバイオデータ解析に活かしてください!
おまけ:デバッグに役立つtips
df.head()
:最初の5行だけ表示(全体を見なくても良い)df.info()
:データ型・欠損値・メモリ使用量などを一括で確認df.describe()
:統計量のサマリー(平均、標準偏差、最小値など)
これらも「属性参照」と同様に、データを俯瞰する道具として活躍します。初期解析やデータ品質チェックに欠かせません!!
ぜひ、あなたのバイオインフォマティクス解析にもpandasを活用してみてくださいね〜!