Python pandas「データ参照とbool型参照」の基本と応用

スポンサーリンク

バイオインフォマティクスでは、大量のゲノムデータや遺伝子発現データを扱うことが一般的です。こうした複雑かつ大規模なデータを効率よく処理するためには、Pythonのpandasライブラリが非常に有効です。特に、データの参照方法(行・列の取り出し方)は、実際の解析業務において非常に重要なスキルの一つです。

今回は、pandasのデータ参照方法について、基本的な行・列の指定から、bool型(真偽値)を使った条件抽出まで、バイオインフォマティクスの視点で丁寧に解説していきます。


1. pandasの基本:データ構造の確認

まずはpandasの基本的なデータ構造、**DataFrame(データフレーム)**を簡単におさらいしましょう。

import pandas as pd

df = pd.DataFrame({
    "Gene": ["BRCA1", "TP53", "EGFR", "MYC"],
    "Sample1": [2.5, 8.1, 5.3, 6.2],
    "Sample2": [1.2, 7.9, 4.8, 5.6]
})

print(df)

出力例:

    Gene  Sample1  Sample2
0  BRCA1      2.5      1.2
1   TP53      8.1      7.9
2   EGFR      5.3      4.8
3    MYC      6.2      5.6

このような構造のデータは、遺伝子発現レベルを解析するときによく登場します。


2. 行や列の基本的な参照方法

2.1 列の参照

列を指定して取り出す方法はとても直感的です。

df["Sample1"]

複数列を取り出す場合はリストを使います。

df[["Gene", "Sample1"]]

2.2 行の参照(ilocとloc)

pandasでは行を参照する方法が2つあります。

  • iloc:インデックス番号で指定(整数)
  • loc:ラベル(indexや列名)で指定
# 1行目(インデックス番号で)
df.iloc[1]
# 1行目から2行目まで(スライス)
df.iloc[1:3]

もし Gene 列を index に指定している場合は、ラベルによる参照ができます。

df.set_index("Gene", inplace=True)
df.loc["TP53"]

3. bool型参照(条件によるデータ抽出)

ここからがpandasの醍醐味。条件に基づいた抽出が柔軟にできるのがpandasの強みです。

3.1 単一条件

例えば、「Sample1の発現値が5以上の遺伝子だけを抽出したい」とき:

filtered = df[df["Sample1"] >= 5.0]
print(filtered)

出力:

      Sample1  Sample2
Gene                  
TP53      8.1      7.9
EGFR      5.3      4.8
MYC       6.2      5.6

3.2 複数条件(AND, OR)

複数の条件を組み合わせることも可能です。

  • AND条件:&
  • OR条件:|
# Sample1が5以上かつSample2が5以上
filtered = df[(df["Sample1"] >= 5.0) & (df["Sample2"] >= 5.0)]
print(filtered)

4. 応用:バイオインフォマティクスにおけるbool型参照の使いどころ

4.1 発現差のある遺伝子を抽出する

たとえば、特定のサンプル間で発現差が大きい遺伝子を取り出す場合:

df["diff"] = abs(df["Sample1"] - df["Sample2"])
df[df["diff"] > 2.0]

このように、発現の変動が顕著な遺伝子だけを絞り込むことができます。


4.2 発現レベルによるカテゴリ分類

発現が高いか低いかをbool型で分類することも可能です。

df["High_Expression"] = df["Sample1"] > 5.0
print(df)

出力:

      Sample1  Sample2  diff  High_Expression
Gene                                        
BRCA1      2.5      1.2   1.3            False
TP53       8.1      7.9   0.2             True
EGFR       5.3      4.8   0.5             True
MYC        6.2      5.6   0.6             True

このようにbool型の列を作成することで、カテゴリ分けや可視化の際にも役立ちます。


4.3 特定の遺伝子群を抽出する

リストを使って、ある遺伝子群(例:がん関連遺伝子)を取り出したい場合:

target_genes = ["BRCA1", "TP53"]
df[df.index.isin(target_genes)]

5. まとめ:pandas参照機能の重要性

pandasのデータ参照機能は、バイオインフォマティクスの現場において極めて強力なツールです。数百、数千のサンプルや遺伝子を対象にしたデータ解析では、以下のような操作が日常的に求められます。

  • 特定の遺伝子・サンプルを抽出
  • 発現レベルに応じたフィルタリング
  • 条件に基づくデータの整理と可視化の準備

これらはすべて、pandasのデータ参照やbool型参照のテクニックで実現可能です。

pandasをしっかり使いこなせば、データの前処理、統計解析、可視化までの流れが非常にスムーズになります!!バイオインフォマティクスの研究・業務を効率化する第一歩として、ぜひこの基本技術をチェックしてみてくださいね〜!

タイトルとURLをコピーしました