pandas:属性参照の基本と応用

スポンサーリンク

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を活用してみてくださいね〜!

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