はじめに
Pythonはデータ分析に非常に適した言語で、その中でも特に強力なライブラリの一つがpandasです。
pandasを使うことで、データの読み込み、操作、解析が簡単に行えます。
pandasとは?
pandasは、データ操作や解析のための強力なPythonライブラリです。
特に以下のような場合に使用します。
-
データの読み込みと保存:
- CSV、Excel、SQLデータベースなど、さまざまな形式のデータを簡単に読み込み、保存できます。
-
データのクリーニング:
- 欠損値の処理やデータのフィルタリング、重複の削除など、データをクリーンにするための機能が豊富です。
-
データの変換と操作:
- 列や行の追加・削除、データ型の変換、条件に基づくデータの選択など、多くのデータ操作が簡単に行えます。
-
データの集計とグループ化:
- ピボットテーブルの作成や、特定の条件に基づくデータの集計、グループ化ができます。
-
データの可視化:
- matplotlibやseabornなどのライブラリと組み合わせて、データの視覚化も容易に行えます。
この記事では、pandasの基本的な使い方を紹介します。
pandasのインストール
まずはpandasをインストールしましょう。以下のコマンドをターミナルやコマンドプロンプトで実行します。
pip install pandas
pandasの基本的な使い方
pandasは主に二つのデータ構造を使います:Series
とDataFrame
です。
Series
は一連のデータを持つ一次元の配列、DataFrame
は二次元のデータテーブルです。
Seriesの作成
Series
を作成するには、リストや辞書を使用します。
import pandas as pd
# リストからSeriesを作成
s = pd.Series([1, 2, 3, 4, 5])
print(s)
実行結果:
0 1
1 2
2 3
3 4
4 5
dtype: int64
辞書からSeriesを作成
# 辞書からSeriesを作成
s = pd.Series({'a': 1, 'b': 2, 'c': 3})
print(s)
実行結果:
a 1
b 2
c 3
dtype: int64
DataFrameの作成
DataFrame
を作成する方法はいくつかありますが、ここではリストと辞書を使った方法を紹介します。
# 辞書からDataFrameを作成
data = {
'名前': ['太郎', '花子', '次郎'],
'年齢': [25, 30, 35],
'職業': ['エンジニア', 'デザイナー', 'データサイエンティスト']
}
df = pd.DataFrame(data)
print(df)
実行結果:
名前 年齢 職業
0 太郎 25 エンジニア
1 花子 30 デザイナー
2 次郎 35 データサイエンティスト
CSVファイルの読み込み
pandasを使うとCSVファイルの読み書きも簡単です。
まずはCSVファイルを読み込んでみましょう。
# CSVファイルの読み込み
df = pd.read_csv('data.csv')
print(df)
実行結果:
data.csv
の内容に依存します。
例えば、以下のようなCSVファイルがあると仮定します。
名前,年齢,職業
太郎,25,エンジニア
花子,30,デザイナー
次郎,35,データサイエンティスト
実行結果:
名前 年齢 職業
0 太郎 25 エンジニア
1 花子 30 デザイナー
2 次郎 35 データサイエンティスト
データの表示
データを表示するための基本的なメソッドには、head()
とtail()
があります。
# 最初の5行を表示
print(df.head())
実行結果:
名前 年齢 職業
0 太郎 25 エンジニア
1 花子 30 デザイナー
2 次郎 35 データサイエンティスト
# 最後の5行を表示
print(df.tail())
実行結果:
名前 年齢 職業
0 太郎 25 エンジニア
1 花子 30 デザイナー
2 次郎 35 データサイエンティスト
基本的なデータ操作
pandasを使うと、データのフィルタリングやソート、集計が簡単に行えます。
# 特定の列を選択
print(df['名前'])
実行結果:
0 太郎
1 花子
2 次郎
Name: 名前, dtype: object
# フィルタリング
print(df[df['年齢'] > 30])
実行結果:
名前 年齢 職業
2 次郎 35 データサイエンティスト
# ソート
print(df.sort_values(by='年齢'))
実行結果:
名前 年齢 職業
0 太郎 25 エンジニア
1 花子 30 デザイナー
2 次郎 35 データサイエンティスト
# グループ化と集計
print(df.groupby('職業').mean())
実行結果:
年齢
職業
エンジニア 25.0
デザイナー 30.0
データサイエンティスト 35.0
以上