Pythonのデータ分析を強力にサポート!Pandas入門
Pythonでデータ分析を行う上で、欠かせないライブラリの一つが Pandas です。表形式のデータを扱うことに特化しており、データの読み込み、整理、加工、分析、そして可視化まで、データ分析の一連のワークフローを効率的にこなすことができます。
Pandasとは?
Pandasは、NumPyをベースに構築されたライブラリで、以下のような特徴を持っています。
- 表形式データの操作に最適: ExcelやCSVのような表形式データを効率的に扱えます。
- データ構造が強力:
Series
とDataFrame
という2つの主要なデータ構造を提供します。 - 欠損値の処理が容易: 欠損値(NaN)を柔軟に扱う機能が充実しています。
- データの結合・集約が簡単: 複数のデータを結合したり、特定の条件で集計したりする操作が容易に行えます。
- 柔軟なデータ操作: データの抽出、並び替え、フィルタリングなど、様々な操作を直感的に記述できます。
Pandasの主要なデータ構造: SeriesとDataFrame
Pandasの中心となるデータ構造は、Series
とDataFrame
です。
- Series: 1次元のラベル付き配列です。NumPyのndarrayと似ていますが、各要素にラベル(インデックス)を付けることができます。
- DataFrame: 2次元のラベル付きテーブルです。複数のSeriesが列として結合されたもので、ExcelのシートやSQLのテーブルのようなイメージです。
Pandasを使ってみよう!
まずはPandasをインストールしましょう。
pip install pandas
次に、PythonスクリプトでPandasをインポートします。
import pandas as pd
DataFrameの作成
辞書を使ってDataFrameを作成する例を見てみましょう。
data = {
'名前': ['Alice', 'Bob', 'Charlie'],
'年齢': [25, 30, 28],
'職業': ['エンジニア', 'データサイエンティスト', 'マーケター']
}
df = pd.DataFrame(data)
print(df)
このコードを実行すると、以下のようなDataFrameが表示されます。
名前 年齢 職業
0 Alice 25 エンジニア
1 Bob 30 データサイエンティスト
2 Charlie 28 マーケター
CSVファイルの読み込み
CSVファイルを読み込むには、read_csv()
関数を使用します。
# data.csvというファイルが存在することを前提とします
df = pd.read_csv('data.csv')
print(df)
データの抽出
DataFrameから特定の列を抽出するには、列名を指定します。
ages = df['年齢']
print(ages)
また、特定の条件を満たす行を抽出することもできます。
engineers = df[df['職業'] == 'エンジニア']
print(engineers)
データの集計
groupby()
関数を使うと、特定の列を基準にデータを集計できます。
# 職業ごとの平均年齢を算出
average_ages = df.groupby('職業')['年齢'].mean()
print(average_ages)
欠損値の処理
欠損値はNaN
で表現されます。欠損値を含む行を削除するにはdropna()
関数を使用します。
df_cleaned = df.dropna()
print(df_cleaned)
欠損値を特定の値で埋めるにはfillna()
関数を使用します。
# 欠損値を0で埋める
df_filled = df.fillna(0)
print(df_filled)
まとめ
Pandasは、Pythonでデータ分析を行う上で非常に強力なツールです。 Series
とDataFrame
という柔軟なデータ構造、欠損値処理、データの結合・集約、そしてデータの抽出など、データ分析に必要な機能が豊富に用意されています。
このコラムでは、Pandasの基本的な使い方を紹介しましたが、Pandasにはまだまだ多くの機能があります。 ぜひ、Pandasのドキュメントやチュートリアルを参考に、より深くPandasを理解し、データ分析スキルを向上させてください。 Pandasを使いこなせるようになれば、データ分析の効率が飛躍的に向上するでしょう。
コラム一覧
◯for文
◯関数
◯配列
◯文字列
◯正規表現
◯ファイル入出力
◯openpyxl
◯Numpy
◯Matplotlib
◯Pandas
◯scikit-learn
◯seaborn
◯beautifulsoup
◯tkinter
◯OpenCV
◯pygame
◯メイン関数
◯自作ライブラリ
◯画像処理
◯機械学習
◯スクレイピング
◯データ分析
◯グラフ作成
◯API
◯可読性
◯デバッグ
◯例外処理
◯コメント
◯組み込み関数
◯flask
◯学び方
◯ビット演算
◯マルチスレッドプログラミング
◯参照渡し
◯pyenv
◯エディタ
◯生成AI
◯画像認識
◯Streamlit
◯lambda式
◯物理演算シミュレーション
◯命名規則
◯遺伝的アルゴリズム
◯関数型プログラミング
◯オブジェクト指向
◯ツリー図