PandasはPythonでのデータ解析を効率的に行うためのライブラリです。このチートシートでは、データの読み込みから操作、集計、出力までの基本操作をカテゴリごとにまとめました。実際のコード例とその実行結果を交えつつ説明するので、実際に実行していって使い方を身につけてください。
pandas完全攻略チートシートをまとめた資料をLINEにて無料配信しています→pandas完全攻略チートシート
Contents
1. Pandasのインポート
Pandasを使用するには、まずライブラリをインポートします。
import pandas as pd
Python2. データの読み込みと保存
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
PythonExcelファイルを読み込む
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
PythonJSONファイルを読み込む
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
PythonDataFrameの基本情報を表示
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
Python4. データの選択とフィルタリング
列を選択
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
Python5. データの集計と統計処理
平均値を計算
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
Python6. 欠損値の処理
欠損値の確認
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
Python7. データの並べ替え
列に基づいて昇順で並べ替え
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
Python8. グループ化と集約
グループごとの平均を計算
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完全攻略チートシート