0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python初心者】pandasのDataFrame活用術|抽出・変換・並び替え・計算など

0
Last updated at Posted at 2025-07-19

この記事では、pandas ライブラリを使って DataFrame でよく使う基本操作をまとめています。
以下のような処理をひとつずつ丁寧に見ていきましょう。

  • ファイルデータを読み込む
  • 条件指定によるデータ抽出
  • データ型の変換
  • データの並び替え
  • カラムの削除
  • カラム同士の計算
  • apply()メソッドによる関数の適用
  • .values.to_numpy() で配列化

✔ DataFrameとは?

DataFrame は、行と列からなる表形式のデータ構造です。
Excelのような表をPythonで扱えるようにしたものと考えるとわかりやすいです。

import pandas as pd

data = {
    '名前': ['太郎', '花子', '次郎'],
    '年齢': [25, 30, 22],
    '身長(cm)': [170, 158, 175]
}

df = pd.DataFrame(data)
print(df)
     名前  年齢  身長(cm)
0   太郎   25     170
1   花子   30     158
2   次郎   22     175

✔ ファイルデータを読み込む(CSVなど)

# CSVファイルの読み込み
df = pd.read_csv('sample.csv')

# Excelファイルの読み込み
df = pd.read_excel('sample.xlsx')

✔ 条件指定によるデータ抽出

# 年齢が25歳以上の行だけ抽出
df[df['年齢'] >= 25]
    名前  年齢  身長(cm)
0  太郎   25     170
1  花子   30     158

✔ データ型の変換(astype)

# '年齢' カラムを float に変換
df['年齢'] = df['年齢'].astype(float)
print(df.dtypes)
名前         object
年齢        float64
身長(cm)      int64
dtype: object

✔ データの並び替え(sort_values)

# 年齢で昇順に並び替え
df.sort_values(by='年齢', ascending=True)
    名前  年齢  身長(cm)
2  次郎  22.0     175
0  太郎  25.0     170
1  花子  30.0     158

✔ カラムの削除(drop)

# '身長(cm)' カラムを削除(axis=1で列を指定)
df = df.drop('身長(cm)', axis=1)
print(df)
    名前   年齢
0  太郎  25.0
1  花子  30.0
2  次郎  22.0

axis=0 は行を削除、axis=1 は列(カラム)を削除することを意味します。

✔ カラム同士の計算

# 新しく体重のデータを追加して、BMIを計算
df['体重(kg)'] = [60, 50, 65]
df['身長(m)'] = [170, 158, 175] / 100
df['BMI'] = df['体重(kg)'] / (df['身長(m)'] ** 2)
print(df[['名前', 'BMI']])
    名前        BMI
0  太郎  20.761246
1  花子  20.032317
2  次郎  21.224490

✔ apply()メソッドで関数を適用

# 年齢に対してカテゴリ分けする関数を定義
def age_category(age):
    if age < 25:
        return '若年層'
    elif age < 35:
        return '中年層'
    else:
        return '高年層'

df['年齢カテゴリ'] = df['年齢'].apply(age_category)
print(df[['名前', '年齢', '年齢カテゴリ']])
    名前    年齢 年齢カテゴリ
0  太郎  25.0   中年層
1  花子  30.0   中年層
2  次郎  22.0   若年層

✔ DataFrameやSeriesの値を配列で取り出す(values / to_numpy)

・すべてのデータを NumPy 配列で取得

print(df.values)
[['太郎' 25.0 60 1.7 20.761245674740486 '中年層']
 ['花子' 30.0 50 1.58 20.032316978193145 '中年層']
 ['次郎' 22.0 65 1.75 21.224489795918366 '若年層']]

・特定の列だけ配列に変換(Series → ndarray)

ages = df['年齢'].values
print(ages)
[25. 30. 22.]

.to_numpy() との違い

基本的に同じ動作ですが、公式ドキュメントでは .to_numpy() の使用がより推奨されています。

df.to_numpy()
df['年齢'].to_numpy()

values も現場ではよく使われるため、初心者としてはどちらも知っておくと安心です。

✔ おわりに

この記事では、pandas.DataFrame の基本的な操作を一通り紹介しました。
どれも実務で非常によく使う処理ですので、ぜひ手を動かしながら覚えてみてください。

# 最後に DataFrame の全体を表示
print(df)
    名前    年齢  体重(kg)  身長(m)        BMI 年齢カテゴリ
0  太郎  25.0     60     1.70  20.761246   中年層
1  花子  30.0     50     1.58  20.032317   中年層
2  次郎  22.0     65     1.75  21.224490   若年層
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?