Python pandasの活用:データの参照方法【基本】

スポンサーリンク

バイオインフォマティクスでは、大規模なデータセットを効率的に処理するために Pythonのpandasライブラリ を活用することが重要です。遺伝子発現データ、変異データ、タンパク質の相互作用データなどを扱う際に、データの「参照(アクセス)」方法を理解することが不可欠です。

本記事では、pandasのデータ参照方法について、基本的な操作を解説します。具体的なコード例を交えながら、バイオデータ解析にすぐに活用できる知識を提供します。


1. pandasのデータ構造と基本的な参照方法

pandasでは、主に Series(1次元)とDataFrame(2次元) のデータ構造を使用します。

1.1 Seriesの参照

Series は、リストのような構造を持ち、行に対するインデックスを持っています。

import pandas as pd

genes = pd.Series([2.5, 8.1, 5.3], index=["BRCA1", "TP53", "EGFR"])
print(genes)

出力

BRCA1    2.5
TP53     8.1
EGFR     5.3
dtype: float64

基本的な参照方法

print(genes["BRCA1"])  # インデックスを指定
print(genes[0])  # 番号(0-based index)を指定

出力

2.5
2.5

インデックス名と数値インデックスのどちらでもデータを参照できます。


1.2 DataFrameの参照

DataFrame は、表形式のデータを扱うための構造で、行と列のインデックスを持ちます。

df = pd.DataFrame({
    "Gene": ["BRCA1", "TP53", "EGFR"],
    "Expression": [2.5, 8.1, 5.3]
}, index=["Sample1", "Sample2", "Sample3"])

print(df)

出力

         Gene  Expression
Sample1  BRCA1        2.5
Sample2   TP53        8.1
Sample3   EGFR        5.3

基本的な参照方法

print(df["Gene"])  # 列を指定
print(df.loc["Sample1"])  # 行を指定

出力

Sample1    BRCA1
Sample2     TP53
Sample3     EGFR
Name: Gene, dtype: object

Gene          BRCA1
Expression      2.5
Name: Sample1, dtype: object
  • df["Gene"] → 列を指定して取得
  • df.loc["Sample1"] → 行をインデックス名で取得

2. データの参照方法(基本)

pandasでは、主に以下の方法でデータを参照できます。

2.1 .loc[](ラベルベースの参照)

loc[] を使用すると、インデックスや列名を指定してデータを取得 できます。

print(df.loc["Sample1"])  # Sample1のデータを取得
print(df.loc["Sample1", "Expression"])  # Sample1のExpression値を取得

出力

Gene          BRCA1
Expression      2.5
Name: Sample1, dtype: object

2.5

また、複数の行や列を取得することもできます。

print(df.loc[["Sample1", "Sample3"]])  # 複数の行を取得
print(df.loc[:, ["Gene"]])  # 特定の列だけを取得

出力

         Gene  Expression
Sample1  BRCA1        2.5
Sample3   EGFR        5.3

         Gene
Sample1  BRCA1
Sample2   TP53
Sample3   EGFR

2.2 .iloc[](位置ベースの参照)

iloc[] は、行番号や列番号を指定してデータを取得 する方法です。

print(df.iloc[0])  # 0番目の行を取得
print(df.iloc[0, 1])  # 0番目の行の1番目の列を取得

出力

Gene          BRCA1
Expression      2.5
Name: Sample1, dtype: object

2.5

複数の行や列を取得することも可能です。

print(df.iloc[[0, 2]])  # 0番目と2番目の行を取得
print(df.iloc[:, [1]])  # 1番目の列を取得

3. データの参照方法(応用)

3.1 条件を指定してデータを取得

バイオインフォマティクスでは、「特定の条件を満たすデータだけを抽出する」ことが重要です。

high_expression = df[df["Expression"] > 5.0]
print(high_expression)

出力

         Gene  Expression
Sample2   TP53        8.1
Sample3   EGFR        5.3

このように、遺伝子の発現量が5.0以上のサンプルのみ抽出できます。


3.2 特定の遺伝子のデータを取得

Gene 列をindexにすると、特定の遺伝子を簡単に検索できます。

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

出力

Expression    8.1
Name: TP53, dtype: float64

3.3 部分一致でデータを取得

正規表現を使って、特定の遺伝子名を含むデータを取得することも可能です。

filtered_df = df[df.index.str.contains("TP")]
print(filtered_df)

出力

       Expression
Gene             
TP53         8.1

4. まとめ

バイオインフォマティクスのデータ解析では、効率的なデータ参照が不可欠 です。pandasの基本的なデータ参照方法を理解し、適切に活用することで、遺伝子発現データやゲノムデータをスムーズに処理できます!!

基本

  • df.loc[] → インデックス名や列名でデータを取得
  • df.iloc[] → 行番号や列番号でデータを取得

応用

  • 条件を指定してデータをフィルタリング
  • 特定の遺伝子やサンプルのデータを取得
  • 正規表現で部分一致検索

今後、さらに高度なデータ解析を行うためにも、pandasのデータ参照方法をマスターしておきましょう〜!

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