はじめに
Pandasを使って「〇〇したい」という具体的な目的に対して、どう操作すればよいのかを逆引き形式でまとめました。これさえ見れば、よくあるPandas操作にすぐに対応できるはず!
1. データの準備
1-1. CSVファイルを読み込みたい
df = pd.read_csv('ファイル名.csv')
1-2. Excelファイルを読み込みたい
df = pd.read_excel('ファイル名.xlsx')
1-3. データフレームをCSVファイルに書き出したい
df.to_csv('保存先.csv', index=False)
1-4. データフレームをExcelファイルに書き出したい
df.to_excel('保存先.xlsx', index=False)
2. データの確認
2-1. 最初の数行だけ確認したい
print(df.head()) # デフォルトは最初の5行
2-2. データの統計情報を確認したい
print(df.describe())
2-3. データの列名や行数、データ型を確認したい
print(df.columns) # 列名
print(df.shape) # 行数と列数
print(df.dtypes) # データ型
3. データの選択・フィルタリング
3-1. 特定の列を選択したい
print(df['列名']) # 列を選択
3-2. 特定の行を選択したい
print(df.loc[行番号]) # 行番号で行を選択
3-3. 条件に合う行を抽出したい
filtered_df = df[df['列名'] > 条件値]
例:年齢が30以上のデータを抽出
filtered_df = df[df['年齢'] >= 30]
4. データの加工
4-1. 新しい列を追加したい
df['新しい列名'] = データ
例:他の列を基に新しい列を追加
df['年収'] = df['時給'] * 2000 # 時給×2000時間で年収を計算
4-2. 列のデータを更新したい
df['列名'] = df['列名'].replace(置換前, 置換後)
4-3. 列を削除したい
df = df.drop(columns=['削除したい列名'])
4-4. 重複する行を削除したい
df = df.drop_duplicates()
5. データの集計・グループ化
5-1. 列ごとの合計や平均を計算したい
print(df['列名'].sum()) # 合計
print(df['列名'].mean()) # 平均
5-2. 特定の列でグループ化し、集計したい
grouped = df.groupby('列名')['集計対象列名'].sum() # 合計
print(grouped)
例:職業ごとに年齢の平均を計算
grouped = df.groupby('職業')['年齢'].mean()
print(grouped)
5-3. ピボットテーブルを作りたい
pivot_df = df.pivot_table(values='集計対象列名', index='行にしたい列名', columns='列にしたい列名', aggfunc='集計関数')
6. データの欠損値を処理したい
6-1. 欠損値を確認したい
print(df.isnull().sum()) # 列ごとの欠損値の数を表示
6-2. 欠損値を削除したい
df = df.dropna()
6-3. 欠損値を特定の値で埋めたい
df['列名'] = df['列名'].fillna(埋めたい値)
7. データのソート(並び替え)
7-1. 列の値でソートしたい
df_sorted = df.sort_values(by='列名', ascending=True) # 昇順(小さい順)
例:年齢の降順でソート
df_sorted = df.sort_values(by='年齢', ascending=False) # 降順(大きい順)
8. 応用操作
8-1. 複数のDataFrameを結合したい
# 縦方向に結合(行を追加)
df_combined = pd.concat([df1, df2])
# 横方向に結合(列を追加)
df_merged = pd.merge(df1, df2, on='共通の列名')
8-2. 行や列を転置したい
df_transposed = df.T # 行と列を入れ替え
まとめ
この逆引きガイドでは、Pandasで「何をしたいか」に対応する基本的な操作方法を紹介しました。これを参考に、さまざまなデータ操作を素早く実現してください!
他のデータ解析の記事