0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゼロから始めるPandas入門:Pythonでデータ分析の第一歩

Posted at

【初心者向け】Pythonでデータ分析を始めるならPandas!DataFrame・Series・CSV入出力の基本

Pandasは、Pythonでデータ分析データ処理を行う際に欠かせないライブラリです。
CSVやExcelなどの表形式データを高速かつ柔軟に処理でき、データの読み込み・整形・集計・分析・可視化まで幅広くカバーします。

この記事では、Pandas初心者がまず押さえるべきDataFrame・Series・CSV入出力・データアクセス・集計メソッドについて解説します。
記事内のコードはすべてコピペで実行可能です。


1. Pandasの概要

Pandasには2つの基本データ構造があります。

  • DataFrame:行と列を持つ表形式データ(ExcelやSQLのテーブルに近い)
  • Series:1次元のラベル付きデータ(1列分のデータ)

よく使うコードは、VSCodeのスニペット機能(python.json)に登録しておくと効率的です。


2. DataFrameの作成

import pandas as pd

df = pd.DataFrame({
    'Bob': ['I liked it.', 'It was awful.'],
    'Sue': ['Pretty good.', 'Bland.']
}, index=['Product A', 'Product B'])

print(df)

出力:

               Bob           Sue
Product A  I liked it.  Pretty good.
Product B  It was awful.      Bland.

3. Seriesの作成

sales = pd.Series(
    [30, 35, 40],
    index=['2015 Sales', '2016 Sales', '2017 Sales'],
    name='Product A'
)

print(sales)

出力:

2015 Sales    30
2016 Sales    35
2017 Sales    40
Name: Product A, dtype: int64

4. CSVファイルの入出力

読み込み

df = pd.read_csv('./hogehoge.csv', index_col=0)
  • index_col=0 → 最初の列をインデックスとして扱う

書き出し

df.to_csv("hogehoge.csv")

5. データへのアクセス方法

列の取得

df['Bob']  # 推奨
df.Bob     # 列名がシンプルな場合のみ可

行・行+列の取得(loc)

df.loc['Product A']            # 行取得
df.loc['Product A', 'Bob']     # 行と列を同時に取得
df.loc[:, 'Bob']               # 全行のBob列取得

iloc は位置ベースの取得方法ですが、ラベルベースの loc の方が実務でよく使われます。


6. データ整形・集計メソッド

メソッド 用途
describe() 要約統計量(平均、標準偏差、最大値など)
mean() 平均値
median() 中央値
unique() ユニークな値
value_counts() 各値の出現回数(Series専用)
idxmax() 最大値のインデックス
map() Series要素に関数適用
apply() DataFrameやSeries全体に関数適用

例:

df['Bob'].unique()
df['Bob'].map(str.upper)
df.apply(lambda x: x.astype(str) + "!!")

7. GroupByによる集計

特定の列でデータをグループ化し、集計できます。

data = pd.DataFrame({
    'Category': ['A', 'A', 'B', 'B'],
    'Value': [10, 15, 10, 25]
})

# 平均を計算
grouped = data.groupby('Category')['Value'].mean()
print(grouped)

# 複数集計
agg_grouped = data.groupby('Category').agg(['mean', 'sum'])
print(agg_grouped)

8. データ型と変換

df['Bob'].dtype        # データ型確認
df['Bob'] = df['Bob'].astype(str)  # 型変換

9. 欠損値の処理

Pandasでは欠損値を NaN(Not a Number) で表します。

df.isnull()       # 欠損値判定
df.fillna(0)      # NaNを0に置換
df.replace('Bland', 'Average')  # 特定値置換

10. データの結合

df1 = pd.DataFrame({'Key': [1, 2], 'A': ['A0', 'A1']})
df2 = pd.DataFrame({'Key': [1, 2], 'B': ['B0', 'B1']})

# 行方向に結合
pd.concat([df1, df2], axis=1)

# キーで結合
df1.join(df2.set_index('Key'), on='Key')

まとめ

  • PandasはPythonでのデータ分析に必須
  • DataFrameとSeriesを理解する
  • CSVは read_csv()to_csv() で入出力
  • データアクセスは loc が便利
  • describe()groupby() を使いこなせば集計が楽になる
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?