Python

Pandas基礎完全攻略チートシート

PandasはPythonでのデータ解析を効率的に行うためのライブラリです。このチートシートでは、データの読み込みから操作、集計、出力までの基本操作をカテゴリごとにまとめました。実際のコード例とその実行結果を交えつつ説明するので、実際に実行していって使い方を身につけてください。

pandas完全攻略チートシートをまとめた資料をLINEにて無料配信しています→pandas完全攻略チートシート

1. Pandasのインポート

Pandasを使用するには、まずライブラリをインポートします。

import pandas as pd
Python

2. データの読み込みと保存

CSVファイルを読み込む

df = pd.read_csv('sample.csv')

print("CSVファイルの読み込み結果:")

print(df.head())
Python

出力

CSVファイルの読み込み結果:
  column1 column2 column3
0         1         4            7
1         2         5          8
2         3         6          9

Python

Excelファイルを読み込む

df = pd.read_excel('sample.xlsx', sheet_name='Sheet1')

print("Excelファイルの読み込み結果:")

print(df.head())
Python

出力

Excelファイルの読み込み結果:

   column1  column2  column3
0          1          4          7
1          2          5          8
2          3          6          9
Python

JSONファイルを読み込む

df = pd.read_json('sample.json')

print("JSONファイルの読み込み結果:")

print(df.head())
Python

出力

JSONファイルの読み込み結果:

   column1  column2  column3
0          1          4          7
1          2          5          8
2          3          6          9
Python

データをCSVファイルに保存

df.to_csv('output.csv', index=False)

print("データをCSVファイルに保存しました。")
Python

出力

ファイルの保存:実行後、カレントディレクトリ(または指定されたパス)に output.csv という名前のCSVファイルが保存されます。

コンソール出力:
「データをCSVファイルに保存しました。」のメッセージがターミナルやコンソールに表示されます。

データをExcelファイルに保存

df.to_excel('output.xlsx', index=False)

print("データをExcelファイルに保存しました。")
Python

出力

ファイルの保存:実行後、カレントディレクトリ(または指定されたパス)に output.xlsx という名前のCSVファイルが保存されます。

コンソール出力:
「データをExcelファイルに保存しました。」のメッセージがターミナルやコンソールに表示されます。

3. DataFrameの作成と基本情報

辞書からDataFrameを作成

data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [24, 27, 22], 'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

print("DataFrameの作成結果:")

print(df)
Python

出力

DataFrameの作成結果:
      Name     Age       City
0     Alice     24       New York
1      Bob      27       Los Angeles
2  Charlie      22       Chicago
Python

DataFrameの基本情報を表示

print("DataFrameの基本情報:")

print(df.info())
Python

出力

DataFrameの基本情報:

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 3 entries, 0 to 2

Data columns (total 3 columns):

 #   Column  Non-Null Count  Dtype 

---  ------  --------------  ----- 

 0   Name    3 non-null      object

 1    Age     3 non-null      int64 

 2     City    3 non-null      object

dtypes: int64(1), object(2)

memory usage: 200.0+ bytes
Python

基本統計量を表示

print("基本統計量:")

print(df.describe())
Python

出力

基本統計量:

             Age

count   3.000000

mean   24.333333

std     2.516611

min    22.000000

25%    23.000000

50%    24.000000

75%    25.500000

max    27.000000
Python

列ごとのデータ型を取得

print("各列のデータ型:")

print(df.dtypes)
Python

出力

各列のデータ型:

Name     object

Age       int64

City     object

dtype: object
Python

4. データの選択とフィルタリング

列を選択

print("Age列の選択:")

print(df['Age'])
Python

出力

Age列の選択:

0    24

1    27

2    22

Name: Age, dtype: int64
Python

複数列を選択

print("NameとCity列の選択:")

print(df[['Name', 'City']])
Python

出力

NameとCity列の選択:

   Name   City

0  Alice   New York

1  Bob     Los Angeles

2  Charlie Chicago
Python

行をフィルタリング(条件に合う行を抽出)

filtered_df = df[df['Age'] > 23]

print("Ageが23歳以上の行を抽出:")

print(filtered_df)
Python

出力

Ageが23歳以上の行を抽出:

      Name  Age         City

0    Alice   24     New York

1      Bob   27  Los Angeles
Python

行と列を条件で選択(loc)

print("Ageが24以上のName列を抽出:")

print(df.loc[df['Age'] >= 24, 'Name'])
Python

出力

Ageが24以上のName列を抽出:

0    Alice

1    Bob

Name: Name, dtype: object
Python

5. データの集計と統計処理

平均値を計算

print("Age列の平均値:", df['Age'].mean())
Python

出力

Age列の平均値: 24.333333333333332
Python

最大値と最小値を取得

print("Age列の最大値:", df['Age'].max())

print("Age列の最小値:", df['Age'].min())
Python

出力

Age列の最大値: 27

Age列の最小値: 22
Python

合計を計算

print("Age列の合計:", df['Age'].sum())
Python

出力

Age列の合計: 73
Python

分散を計算

print("Age列の分散:", df['Age'].var())
Python

出力

Age列の分散: 6.333333333333333
Python

6. 欠損値の処理

欠損値の確認

print("欠損値の確認:")

print(df.isnull().sum())
Python

出力

欠損値の確認:

Name  0

Age   0

City   0

dtype: int64
Python

欠損値を特定の値で埋める

df['Age'].fillna(df['Age'].mean(), inplace=True)

print("欠損値を平均値で埋めた結果:")

print(df)
Python

出力(欠損値がない場合は変更なし):

欠損値を平均値で埋めた結果:

      Name    Age         City

0    Alice     24     New York

1      Bob     27  Los Angeles

2  Charlie     22      Chicago
Python

欠損値のある行を削除

df_dropped = df.drop

na()

print("欠損値のある行を削除した結果:")

print(df_dropped)
Python

出力

欠損値のある行を削除した結果:

      Name     Age         City

0    Alice      24     New York

1      Bob      27  Los Angeles

2  Charlie      22      Chicago
Python

7. データの並べ替え

列に基づいて昇順で並べ替え

sorted_df = df.sort_values('Age')

print("Age列で昇順に並べ替えた結果:")

print(sorted_df)
Python

出力

Age列で昇順に並べ替えた結果:

      Name      Age          City

2  Charlie       22       Chicago

0    Alice       24      New York

1      Bob       27   Los Angeles
Python

列に基づいて降順で並べ替え

sorted_df = df.sort_values('Age', ascending=False)

print("Age列で降順に並べ替えた結果:")

print(sorted_df)
Python

出力

Age列で降順に並べ替えた結果:

      Name      Age           City

1      Bob       27    Los Angeles

0    Alice       24       New York

2  Charlie       22        Chicago
Python

インデックスを使って並べ替え

df_sorted = df.set_index('Age').sort_index()

print("Ageをインデックスにして並べ替え:")

print(df_sorted)
Python

出力

Ageをインデックスにして並べ替え:

            Name            City

Age                        

22       Charlie         Chicago

24         Alice        New York

27           Bob     Los Angeles
Python

8. グループ化と集約

グループごとの平均を計算

grouped = df.groupby('City').mean()

print("Cityごとの平均Age:")

print(grouped)
Python

出力

Cityごとの平均Age:

             Age

City             

Chicago       22

Los Angeles   27

New York      24
Python

グループごとの合計を計算

grouped_sum = df.groupby('City').sum()

print("CityごとのAgeの合計:")

print(grouped_sum)
Python

出力

CityごとのAgeの合計:

            Age

City             

Chicago      22

Los Angeles  27

New York     24
Python

複数の列でグループ化

data = {

    'City': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles', 'Chicago'],

    'Age': [24, 27, 22, 32, 25, 23],

    'Income': [70000, 80000, 75000, 62000, 59000, 68000]

}

df = pd.DataFrame(data)

grouped_multi = df.groupby(['City', 'Age']).sum()

print("CityとAgeでグループ化した結果:")

print(grouped_multi)
Python

出力

CityとAgeでグループ化した結果:

                         Income

City              Age          

Chicago            23      68000

                   32      62000

Los Angeles        25      59000

                   27      80000

New York           22      75000

                   24      70000
Python

おわりに

今回はpandasで使える実際のコード例とそのグラフ出力を交えつつ説明しました。ぜひ実際に手を動かして使い方を身につけてください。

pandas完全攻略チートシートをまとめた資料をLINEにて無料配信しています→pandas完全攻略チートシート