【Python】DataFrameの操作(2)

PythonのpandasにおけるDataFrame操作でよく使うものをまとめています。
サンプルコードはDataFrame例と照らし合わせながらご覧いただくとイメージしやすいかと思います。

関連記事はこちら
【Python】DataFrameの操作(1)

DataFrame例

california_housing_test_例(欠損値含む)
Google Colaboratory のサンプルデータから上位10件のみを抽出し、一部を欠損値に更新したもの
▼備考
DataFrameの一部を欠損値に更新するためのコードは以下の通り。

import numpy as np
df.loc[4] = np.nan
df.loc[6]['population'] = np.nan
df.loc[7]['longitude'] = np.nan

取得

要素の値と出現数を取得
# 出現した値とその出現数を取得
s = df['housing_median_age'].value_counts()

# 出現した値
s.index

# 出現数
s.values

▼結果

california_housing_test_要素の値と出現数
画像は出現した値とその出現数を取得したもの
▼備考
value_counts の返却値は Series型 であるため、index と values で個別に取得が可能。

重複した行の取得
df.duplicated()

▼結果

california_housing_test_重複行

重複した列の取得
df['housing_median_age'].duplicated()

▼結果

california_housing_test_重複列

欠損値を含むか判定
df.isnull()

▼結果

california_housing_test_欠損値判定
欠損値の要素が「True」になる

列内に欠損値を含むか判定
df.isnull().any()

▼結果

california_housing_test_欠損値・列判定
列内に欠損値が含まれていると「True」になる

行内に欠損値を含むか判定
df.isnull().any(axis=1)

▼結果

california_housing_test_欠損値・行判定
行内に欠損値が含まれていると「True」になる

変更

行名・列名の変更
# 一つずつ変更
df.rename(columns = {'longitude' : 'abcde'}, index={1 : 'ONE'})

# 一括変更
df.rename(columns = {'longitude' : 'abcde', 'latitude' : 'fghij'}, index={1 : 'ONE', 2 : 'TWO'})

# 全ての行名を変更
df.index = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']

# 全ての列名を変更
df.columns = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']

▼結果

california_housing_test_行名・列名変更
画像は一つずつ変更したもの
▼備考
全ての行名・列名の変更は行数、列数が合わないとエラーになる。