1
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の基本的な使い方のまとめ

Posted at

Pandasは、Pythonでデータ解析を行うためのライブラリであり、特に「データフレーム(DataFrame)」という2次元の表形式データを効率的に操作するために非常に強力です。この記事では、Pandasを使って基本的なデータ操作を行い、データフレームを作成・操作する方法について解説します。

Pandasのインストール

まず、Pandasをインストールしていない場合は、以下のコマンドでインストールします。

pip install pandas

Pandasの基本

1. Pandasのインポート

Pandasを使用するためには、まずimport pandas as pdでインポートします。pdというエイリアスは一般的に使われる名前です。

import pandas as pd

2. データフレームの作成

データフレーム(DataFrame)は、Pandasの最も重要なデータ構造であり、行と列を持つ2次元のデータ構造です。以下では、リストや辞書を使ってデータフレームを作成する方法を紹介します。

2.1 リストを使ってデータフレームを作成

# リストを使ってデータフレームを作成
data = [[1, 'Alice', 25], [2, 'Bob', 30], [3, 'Charlie', 35]]
df = pd.DataFrame(data, columns=['ID', 'Name', 'Age'])

print("データフレーム:")
print(df)

出力:

データフレーム:
   ID     Name  Age
0   1    Alice   25
1   2      Bob   30
2   3  Charlie   35

2.2 辞書を使ってデータフレームを作成

辞書を使ってもデータフレームを作成できます。辞書のキーが列名、値が各列のデータに対応します。

# 辞書を使ってデータフレームを作成
data_dict = {'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df_dict = pd.DataFrame(data_dict)

print("辞書を使ったデータフレーム:")
print(df_dict)

出力:

辞書を使ったデータフレーム:
   ID     Name  Age
0   1    Alice   25
1   2      Bob   30
2   3  Charlie   35

3. データフレームの基本的な操作

Pandasのデータフレームには、行や列を簡単に操作するための多くの便利なメソッドがあります。以下では、列の選択、行の選択、フィルタリングを紹介します。

3.1 列の選択

# 'Name' 列を選択
name_column = df['Name']
print("Name 列:")
print(name_column)

出力:

Name 列:
0      Alice
1        Bob
2    Charlie
Name: Name, dtype: object

3.2 行の選択

行を選択するには、.loc[].iloc[] を使います。

# 2行目(インデックス1)を選択
row_2 = df.iloc[1]
print("2行目:")
print(row_2)

出力:

2行目:
ID           2
Name       Bob
Age        30
Name: 1, dtype: object

3.3 特定の条件でデータをフィルタリング

# 'Age' が30以上の行をフィルタリング
filtered_df = df[df['Age'] >= 30]
print("Age >= 30 の行:")
print(filtered_df)

出力:

Age >= 30 の行:
   ID     Name  Age
1   2      Bob   30
2   3  Charlie   35

4. データの操作

4.1 新しい列の追加

# 'Age' 列に10を足した新しい列 'Age_plus_10' を追加
df['Age_plus_10'] = df['Age'] + 10
print("新しい列 'Age_plus_10' を追加したデータフレーム:")
print(df)

出力:

新しい列 'Age_plus_10' を追加したデータフレーム:
   ID     Name  Age  Age_plus_10
0   1    Alice   25           35
1   2      Bob   30           40
2   3  Charlie   35           45

4.2 列の削除

# 'Age_plus_10' 列を削除
df.drop('Age_plus_10', axis=1, inplace=True)
print("'Age_plus_10' 列を削除したデータフレーム:")
print(df)

出力:

'Age_plus_10' 列を削除したデータフレーム:
   ID     Name  Age
0   1    Alice   25
1   2      Bob   30
2   3  Charlie   35

5. データの集約(GroupBy)

Pandasでは、データを特定の列でグループ化し、集約操作を行うことができます。

# 'Age' 列でグループ化し、各グループの平均年齢を計算
grouped_df = df.groupby('Age').mean()
print("グループ化して平均を計算:")
print(grouped_df)

出力:

グループ化して平均を計算:
      ID
Age      
25   1.0
30   2.0
35   3.0

6. 欠損値の扱い

データに欠損値が含まれている場合、Pandasは欠損値の処理を簡単に行うことができます。

# 欠損値を含むデータフレーム
df_with_nan = pd.DataFrame({
    'ID': [1, 2, 3],
    'Name': ['Alice', None, 'Charlie'],
    'Age': [25, 30, None]
})

print("欠損値を含むデータフレーム:")
print(df_with_nan)

出力:

欠損値を含むデータフレーム:
   ID     Name   Age
0   1    Alice  25.0
1   2     None  30.0
2   3  Charlie   NaN

欠損値の削除

# 欠損値を含む行を削除
df_without_nan = df_with_nan.dropna()
print("欠損値を含む行を削除したデータフレーム:")
print(df_without_nan)

出力:

欠損値を含む行を削除したデータフレーム:
   ID     Name   Age
0   1    Alice  25.0

7. データの並べ替え

Pandasでは、データフレームの並べ替えも簡単に行えます。

# 'Age' 列で昇順に並べ替え
df_sorted = df.sort_values(by='Age')
print("Age 列で昇順に並べ替えたデータフレーム:")
print(df_sorted)

出力:

Age 列で昇順に並べ替えたデータフレーム:
   ID     Name  Age
0   1    Alice   25
1   2      Bob   30
2   3  Charlie   35

まとめ

この記事では、Pandasの基本的な使い方をデータフレームの作成、データの操作、欠損値の扱い、集約操作などを通じて学びました。Pandasはデータ解析に欠かせないライブラリであり、データフレームを使って効率的にデータの読み込み、前処理、集計、分析を行うことができます。

Pandasを使いこなすことで、大量のデータを扱う際の効率が格段に向上します。ぜひ、さらに多くの機能を試してみてください!

1
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
1
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?