Pythonによる効率的なデータ分析のヒント

リスト内包表記の活用

Pythonではリスト内包表記を使用して、簡潔かつ効率的にリストを作成できます。例えば、数値のリストを2乗する処理は以下のようになります:


numbers = [1, 2, 3, 4]
squared = [num ** 2 for num in numbers]
print(squared)  # 出力: [1, 4, 9, 16]

Lambda式の使用

繰り返し使わない関数を定義する必要がない場合、lambda式が便利です。これは一時的な関数を簡潔に作成するための仕組みです。


double = lambda x: x * 2
print(double(5))  # 出力: 10

MapとFilterの組み合わせ

lambda式と組み合わせてmap関数やfilter関数を使うことで、リストの変換やフィルタリングが簡単にできます。

Map関数


sequence = [1, 2, 3, 4, 5]
result = list(map(lambda x: x * 2, sequence))
print(result)  # 出力: [2, 4, 6, 8, 10]

Filter関数


result = list(filter(lambda x: x > 2, sequence))
print(result)  # 出力: [3, 4, 5]

NumPyの関数:arangeとlinspace

NumPyのarangelinspaceは、数値のリストを生成するのに便利です。

arangeの使用例


import numpy as np
print(np.arange(3, 7, 2))  # 出力: [3 5]

linspaceの使用例


print(np.linspace(2.0, 3.0, num=5))  # 出力: [2.0, 2.25, 2.5, 2.75, 3.0]

PandasでのAxisの理解

Pandasでは、行や列を操作する際にaxisパラメータを使います。列を削除する場合はaxis=1、行を削除する場合はaxis=0を指定します。


# 例: 列の削除
df.drop('Column A', axis=1)

# 例: 行の削除
df.drop('Row A', axis=0)

データフレームの結合方法

Pandasでは、データフレームを結合する方法としてconcatmergejoinがあります。

  • concat: 複数のDataFrameを縦または横に結合します。
  • merge: 指定したキーに基づいて2つのDataFrameを結合します。
  • join: インデックスまたは共通の列名に基づいて結合します。

Apply関数の活用

apply関数を使うと、DataFrameやSeriesに対して関数を適用できます。


import pandas as pd
import numpy as np

df = pd.DataFrame([[4, 9]] * 3, columns=['A', 'B'])
print(df.apply(np.sqrt))
# 出力:
#     A    B
# 0  2.0  3.0
# 1  2.0  3.0
# 2  2.0  3.0

print(df.apply(np.sum, axis=0))
# 出力:
# A    12
# B    27

print(df.apply(np.sum, axis=1))
# 出力:
# 0    13
# 1    13
# 2    13

ピボットテーブルの作成

Pandasでは、Excelのようなピボットテーブルを簡単に作成できます。


# ピボットテーブルの例
pivot_table = pd.pivot_table(df, values='売上', index='管理者', columns='商品')

タグ: Python Pandas NumPy

8月9日 22:55 投稿