Pythonはデータ分析のための強力なツールであり、PandasとMatplotlibはその中でも特に重要なライブラリです。Pandasはデータの操作と分析に優れており、Matplotlibはデータの視覚化を行うためのライブラリです。本記事では、PandasとMatplotlibの基本的な使い方を紹介します。
1. Pandasの基本
Pandasとは?
Pandasは、データ操作と分析のための高性能なデータ構造とデータ操作ツールを提供するPythonライブラリです。Pandasの主なデータ構造には、Series(1次元配列)とDataFrame(2次元配列)があります。
Pandasのインストール
Pandasをインストールするには、以下のコマンドを実行します。
bashコードをコピーするpip install pandas
DataFrameの作成
DataFrameは、行と列を持つ2次元のデータ構造です。以下は、簡単なDataFrameの作成例です。
pythonコードをコピーするimport pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [24, 27, 22, 32],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
print(df)
CSVファイルの読み込み
CSVファイルからデータを読み込む方法を紹介します。
pythonコードをコピーするdf = pd.read_csv('data.csv')
print(df.head()) # 最初の5行を表示
データの基本操作
列の選択
pythonコードをコピーするnames = df['Name']
print(names)
行の選択
pythonコードをコピーするfirst_row = df.iloc[0]
print(first_row)
条件に基づくデータの選択
pythonコードをコピーするadults = df[df['Age'] > 25]
print(adults)
新しい列の追加
pythonコードをコピーするdf['Age_10_years'] = df['Age'] + 10
print(df)
データの集計と統計
基本的な統計量の計算
pythonコードをコピーするprint(df.describe())
グループ化と集計
pythonコードをコピーするgrouped = df.groupby('City')['Age'].mean()
print(grouped)
データの欠損値処理
欠損値の確認
pythonコードをコピーするprint(df.isnull().sum())
欠損値の除去
pythonコードをコピーするdf.dropna(inplace=True)
欠損値の補完
pythonコードをコピーするdf.fillna(0, inplace=True)
2. Matplotlibの基本
Matplotlibとは?
Matplotlibは、Pythonのためのデータ視覚化ライブラリで、グラフや図を作成するために使用されます。Pandasと組み合わせて使用することで、データの可視化が容易になります。
Matplotlibのインストール
Matplotlibをインストールするには、以下のコマンドを実行します。
bashコードをコピーするpip install matplotlib
基本的なプロット
線グラフ
pythonコードをコピーするimport matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y)
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.title('Line Plot')
plt.show()
散布図
pythonコードをコピーするplt.scatter(x, y)
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.title('Scatter Plot')
plt.show()
ヒストグラム
pythonコードをコピーするdata = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
plt.hist(data, bins=4)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()
PandasとMatplotlibの連携
PandasのDataFrameを使用して、データを簡単に視覚化する方法を紹介します。
DataFrameのプロット
pythonコードをコピーするdf.plot(kind='line', x='Name', y='Age', title='Age of Individuals')
plt.show()
棒グラフ
pythonコードをコピーするdf.plot(kind='bar', x='Name', y='Age', title='Age of Individuals')
plt.show()
箱ひげ図
pythonコードをコピーするdf.boxplot(column='Age', by='City')
plt.title('Age Distribution by City')
plt.suptitle('')
plt.xlabel('City')
plt.ylabel('Age')
plt.show()
カスタマイズ
Matplotlibを使用して作成するグラフは、多くのカスタマイズが可能です。以下は、いくつかのカスタマイズの例です。
色の変更
pythonコードをコピーするplt.plot(x, y, color='green')
plt.show()
線のスタイル
pythonコードをコピーするplt.plot(x, y, linestyle='--')
plt.show()
マーカーの追加
pythonコードをコピーするplt.plot(x, y, marker='o')
plt.show()
複数のプロット
pythonコードをコピーするy2 = [30, 25, 20, 10]
plt.plot(x, y, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend()
plt.show()
3. 実践例
ここでは、PandasとMatplotlibを組み合わせてデータ分析を行う具体的な例を紹介します。
データの読み込みと前処理
pythonコードをコピーするimport pandas as pd
# CSVファイルの読み込み
df = pd.read_csv('data.csv')
# 必要な列の選択
df = df[['Name', 'Age', 'City', 'Salary']]
# 欠損値の処理
df.dropna(inplace=True)
print(df.head())
基本的な統計量の計算
pythonコードをコピーするprint(df.describe())
データのグループ化と集計
pythonコードをコピーするavg_salary_by_city = df.groupby('City')['Salary'].mean()
print(avg_salary_by_city)
データの視覚化
平均給与の棒グラフ
pythonコードをコピーするimport matplotlib.pyplot as plt
avg_salary_by_city.plot(kind='bar', title='Average Salary by City')
plt.xlabel('City')
plt.ylabel('Average Salary')
plt.show()
年齢分布のヒストグラム
pythonコードをコピーするdf['Age'].plot(kind='hist', bins=10, title='Age Distribution')
plt.xlabel('Age')
plt.show()
散布図による相関の確認
年齢と給与の相関
pythonコードをコピーするdf.plot(kind='scatter', x='Age', y='Salary', title='Age vs Salary')
plt.xlabel('Age')
plt.ylabel('Salary')
plt.show()
終わりに
PandasとMatplotlibを使うことで、データの操作、分析、視覚化が容易に行えます。今回紹介した基本的な操作方法と実践例を基に、さまざまなデータセットを扱い、自分のデータ分析スキルを向上させましょう。データ分析の実践を通じて、さらに高度なテクニックやライブラリも学び、応用できるようになると、より深いインサイトを得ることができます。