DataFrame クラス

DataFrame クラス (pandas モジュール)

[APIドキュメント]

class DataFrame(NDFrame)

属性

attrs

@ [APIドキュメント]

  • DataFrameのメタデータ <dict>
  • DataFrameのメタデータを辞書形式で格納します

columns

@ [APIドキュメント]

  • DataFrame の列ラベル <Index>

解説記事

print(df.columns)

dtypes

@ [APIドキュメント]

  • DataFrameの各列のデータ型 <Series>

iloc

@ [APIドキュメント]

  • 行番号 / 列番号を用いて行と列を指定し、その要素を取り出します。 <Object / Series / DataFrame>
  • 要素の指定の仕方によりObject / Series / DataFrameが返されます。

解説記事

print(df.iloc[1, 0])

index

@ [APIドキュメント]

  • DataFrameの行ラベル <Index>

loc

@ [APIドキュメント]

  • 行ラベル・列ラベルを用いて行と列を指定し、その要素を取り出します。 <Object / Series / DataFrame>
  • 要素の指定の仕方によりObject / Series / DataFrameが返されます。

サンプルコード・解説記事

print(df.loc[1, '名前'])

shape

@ [APIドキュメント]

  • DataFrame の行数・列数を表すタプル <tuple(int)>

解説記事

print(df.shape)

size

@ [APIドキュメント]

  • DataFrameの全要素数を表します <int>

解説記事

print(df.size)

T

@ [APIドキュメント]

  • 行と列を入れ替えたDataFrameを表します <DataFrame>

特殊メソッド

__init__

@ [APIドキュメント]

__init__(data=None, index=None, columns=None, dtype=None, copy=False)

  • 引数
    • data : 入力データ <ndarray / Iterable / dict / DataFrame>
      • 辞書にはSeries, arrays, constants, or list-likeオブジェクトを格納できる
      • Python 3.6 以降では辞書型の順序も維持される
    • index : 結果として得られたデータフレームで用いられる行インデックス <Index / array-like>
      • 何も指定されない場合のデフォルトは数値によるインデックス(RangeIndex: 0, 1, 2, …, n)が与えられる
    • columns : 結果として得られたデータフレームの列ラベル <Index / array-like>
      • 何も指定されない場合のデフォルトは数値によるインデックス(RangeIndex: 0, 1, 2, …, n)が与えられる
    • dtype : データ型 <dtype>
      • 何も指定されない場合は、入力データから推論される
    • copy : 入力されたデータを参照しながら使う(False)のか、コピーを作成して用いる(True)のかを指定する <bool>

サンプルコード・解説記事

df14 = pd.DataFrame([['1-1', '1-2', '1-3'], 
                    ['2-1', '2-2', '2-3'], 
                    ['3-1', '3-2', '3-3']], 
                    index=['行1', '行2', '行3'], columns=['列1', '列2', '列3'])
print(df14)
df21 = pd.DataFrame({'名前' : ['田中一郎', '佐藤花子', '高橋太郎', '橋本清'],
                    '性別' : ['男', '女', '男', '男'],
                    '年齢' : [50, 45, 30, 41],
                    '職業' : ['会社員', '弁護士', '医師', '自営業']})
import pandas as pd
import numpy as np
array = np.array([[11, 12, 13], 
                [21, 22, 23], 
                [31, 32, 33]])
df31 = pd.DataFrame(array)
print(df31)

__iter__

@ [APIドキュメント]

__iter__()

  • 引数:なし
  • 戻り値
    • iterator:DataFrameの列ラベルを表すイテレータ

インスタンスメソッド – Conversion

[APIドキュメント]

astype

@ [APIドキュメント]

astype(dtype, copy = True, errors = ‘raise’)

  • 引数
    • dtype :
    • copy : <bool>
    • errors : <{‘raise’, ‘ignore’}>
  • 戻り値
    • casted : 変換されたDataFrame <DataFrame>
  • DataFrameを指定のデータ型に変換します。

インスタンスメソッド – Indexing, iteration

[APIドキュメント]

@ [APIドキュメント]

head(n=5)

  • 引数
    • n : 取得する行数 <int>
  • 戻り値
    • return : 抽出したDataFrame <DataFrame>
  • DataFrameの最初のn行を取得します。

iterrows

@ [APIドキュメント]

iterrows()

  • 引数 : なし
  • 戻り値
    • return : 行を行名とSeriesのタプルとし、その集合をイテラブルなオブジェクトとして取得します <iterable(tuple(int / str… , Series))>
  • DataFrameの行を行名とSeriesのタプルとし、その集合をイテラブルなオブジェクトとして取得します。
  • forループなどでDataFrameの行を一行ずつ取り出して処理する際に用います。

プログラム例

DataFrame(df)について、このメソッドを用いてみます。まずは、戻り値のデータ型を確認してiterrows()の動作を確認してみましょう。

row_iterable = df.iterrows()
for row in row_iterable:
    row_index, row_data = row
    print(type(row_index))    # -> 行名が番号であればint型、文字列であればstr型
    print(type(row_data))    # -> Series型

通常は次のようにして、DataFrameの行を一行ずつ取り出すときに用います。

for index, row in df.iterrows():
    # 処理

itertuples

@ [APIドキュメント]

itertuples(index=True, name=’Pandas’)

  • 引数
    • index:DataFrameのインデックスをnamedtupleの1番最初の要素として入れるかどうかを設定します <bool>
    • name:namedtupleの名前を決めます。Noneとした場合は、通常のtupleとなります <str>
  • 戻り値
    • iterator:DataFrameの行ごとのnamedtuple <namedtuple>
  • DataFrameのデータをnamedtupleとして1行ずつ取り出します。

mask

@ [APIドキュメント]

mask(cond, other=nan, inplace=False, axis=None, level=None, errors=’raise’, try_cast=False)

pop

@ [APIドキュメント]

pop(item)

  • 引数
    • item : 削除して取り出す列のラベル <str>
  • 戻り値
    • return : 取り出した列 <Series>
  • DataFrameから列を削除して、その列を返します。

tail

@ [APIドキュメント]

tail(n=5)

  • 引数
    • n : 取得する行数 <int>
  • 戻り値
    • return : 抽出したDataFrame <DataFrame>
  • DataFrameの最後のn行を取得します。

query

@ [APIドキュメント]

query(expr, inplace=False, **kwargs)

  • 引数
    • expr : クエリ条件式 <str>
    • inplace : 元のDataFrameをクエリで取得したDataFrameで更新するかどうか <bool>
      • True -> 元のDataFrameがクエリで取得したDataFrameで置き換わります。
      • False -> 元のDataFrameは更新されません。
  • 戻り値
    • return : クエリで得られた結果 <DataFrame>

where

@ [APIドキュメント]

where(cond, other=nan, inplace=False, axis=None, level=None, errors=’raise’, try_cast=False)

インスタンスメソッド – Function application, GroupBy & Window

[APIドキュメント]

groupby

@ [APIドキュメント]

groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False)

  • グループ化されたDataFrame やSeriesを作成します。
  • byに列ラベル(複数の場合は列ラベルのリスト)を指定することで、その項目の値をもとにグループ化します。

インスタンスメソッド – Computations / descriptive stats

[APIドキュメント]

corr

@ [APIドキュメント]

corr(method=’pearson’, min_periods=1)

count

@ [APIドキュメント]

count(axis=0, level=None, numeric_only=False)

  • 引数
    • axis : 各列の行数か各行の列数のいずれをカウントするか指定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列の行数をカウントします
      • 1 / ‘columns’ -> 各行の列数をカウントします
    • level : マルチインデックスを持つ場合に、カウントするレベルを指定します <int / str>
      • インデックスがマルチインデックスではない場合(シングルインデックスなど)はlevelの設定はできません。
    • numeric_only : 数値データのみカウントするかどうか指定します <bool>
      • True -> データ型がint, float, boolのデータのみカウントします
      • False -> すべてのデータ型のデータの個数をカウントします
  • 戻り値
    • return : 各列/行の欠損値を除いたデータ数のカウント結果 <Series / DataFrame>
      • levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
  • それぞれの列、もしくは行の欠損値を除いた項目数を取得します。
  • None, NaN, Nat, numpy.inf(pandasのオプションで指定された場合)が欠損値として扱われます。

サンプルコード・解説記事

print(df.count())

cumsum

@ [APIドキュメント]

cumsum(axis=None, skipna=True, *args, **kwargs)

  • 引数
    • axis:各列/行のどちらの累計を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ → 各列ごとの項目(=行)の累計を取得する(デフォルト)
      • 1 / ‘columns’ → 各行ごとの項目(=列)の累計を取得する
    • skipna:欠損値を除外するかどうかを指定します <bool>
      • True → 欠損値を除外する(デフォルト)
      • False → 欠損値を除外しない
  • 戻り値
    • return:指定された累計を表すDataFrame <DataFrame>

describe

@ [APIドキュメント]

describe(percentiles=None, include=None, exclude=None)

  • 引数
    • percentiles : 結果に含めるパーセンタイル(0から1.の間で指定します) <list-like(int / float)>
      • デフォルトでは[0.25, 0.5, 0.75]となっています
    • include : 結果に含める列をそのデータ型で指定します<‘all’ / list-like(dtype) / None>
      • ‘all’ -> すべての列を結果に含めます
      • list-like(dtype) -> 結果に含める列のデータ型を指定します
      • None -> データ型が数値の列のみを結果に含めます
    • exclude : <list-like(dtype) / None>
      • list-like(dtype) -> 結果から除外する列のデータ型を指定します
      • None -> 結果から除外する列はありません
  • 戻り値
    • return : DataFrameの各列の基本的な統計量 <Series / DataFrame>
  • DataFrameの基本的な統計量を表示して要約します。

数値データからなる列では以下の項目が表示されます。

  • count : 欠損値を除いたデータ数
  • mean : 平均値
  • std : 標準偏差
  • min : 最小値
  • 25% : 第1四分位数
  • 50% : 中央値
  • 75% : 第3四分位数
  • max : 最大値

文字列からなる列では以下の項目が表示されます。

  • count : 欠損値を除いたデータ数
  • unique : 重複を除いた項目数
  • top : 最も多く出現した項目名
  • freq : topの項目の出現回数

サンプルコード・解説記事

print(df.describe())

max

@ [APIドキュメント]

max(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)

  • 引数
    • axis : 各列/行のどちらの最大値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列ごとの項目(=行)の最大値を取得する(デフォルト)
      • 1 / ‘columns’ -> 各行ごとの項目(=列)の最大値を取得する
    • skipna : 欠損値を除外するかどうかを指定します <bool>
      • True -> 欠損値を除外する(デフォルト)
      • False -> 欠損値を除外しない
    • level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
    • numeric_only : 数値データのみ対象とするかどうか指定します <bool>
      • True -> データ型がint, float, boolのデータのみ計算に入れます
      • False -> すべてのデータ型のデータを計算にいれます
  • 戻り値
    • return : 各列/行の最大値 <Series / DataFrame>
      • levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります

サンプルコード・解説記事

print(df.max())

mean

@ [APIドキュメント]

mean(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)

  • 引数
    • axis : 各列/行のどちらの平均値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列ごとの項目(=行)の平均値を取得する(デフォルト)
      • 1 / ‘columns’ -> 各行ごとの項目(=列)の平均値を取得する
    • skipna : 欠損値を除外するかどうかを指定します <bool>
      • True -> 欠損値を除外する(デフォルト)
      • False -> 欠損値を除外しない
    • level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
    • numeric_only : 数値データのみ対象とするかどうか指定します <bool>
      • True -> データ型がint, float, boolのデータのみ計算に入れます
      • False -> すべてのデータ型のデータを計算にいれます
  • 戻り値
    • return : 各列/行の平均値 <Series / DataFrame>
      • levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります

サンプルコード・解説記事

print(df.mean())
df = df.set_index(['day', 'time', 'sex'])
print(df.mean(level=0))

median

@ [APIドキュメント]

median(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)

  • 引数
    • axis : 各列/行のどちらの中央値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列ごとの項目(=行)の中央値を取得する(デフォルト)
      • 1 / ‘columns’ -> 各行ごとの項目(=列)の中央値を取得する
    • skipna : 欠損値を除外するかどうかを指定します <bool>
      • True -> 欠損値を除外する(デフォルト)
      • False -> 欠損値を除外しない
    • level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
    • numeric_only : 数値データのみ対象とするかどうか指定します <bool>
      • True -> データ型がint, float, boolのデータのみ計算に入れます
      • False -> すべてのデータ型のデータを計算にいれます
  • 戻り値
    • return : 各列/行の中央値 <Series / DataFrame>
      • levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります

サンプルコード・解説記事

print(df.median())

min

@ [APIドキュメント]

min(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)

  • 引数
    • axis : 各列/行のどちらの最小値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列ごとの項目(=行)の最小値を取得する(デフォルト)
      • 1 / ‘columns’ -> 各行ごとの項目(=列)の最小値を取得する
    • skipna : 欠損値を除外するかどうかを指定します <bool>
      • True -> 欠損値を除外する(デフォルト)
      • False -> 欠損値を除外しない
    • level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
    • numeric_only : 数値データのみ対象とするかどうか指定します <bool>
      • True -> データ型がint, float, boolのデータのみ計算に入れます
      • False -> すべてのデータ型のデータを計算にいれます
  • 戻り値
    • return : 各列/行の最小値 <Series / DataFrame>
      • levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります

サンプルコード・解説記事

print(df.min())

mode

@ [APIドキュメント]

mode(axis=0, numeric_only=False, dropna=True)

  • 引数
    • axis : 各列/行のどちらの最頻値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列ごとの項目(=行)の最頻値を取得する(デフォルト)
      • 1 / ‘columns’ -> 各行ごとの項目(=列)の最頻値を取得する
    • numeric_only : 数値データのみ対象とするかどうか指定します <bool>
      • True -> データ型がint, float, boolのデータのみ計算に入れます
      • False -> すべてのデータ型のデータを計算にいれます
    • dropna : 欠損値を除外するかどうかを指定します <bool>
      • True -> 欠損値を除外します (デフォルト)
      • False -> 欠損値を除外しません
  • 戻り値
    • return : 各列/行の最頻値 <DataFrame>

サンプルコード・解説記事

print(df.mode())

quantile

@ [APIドキュメント]

quantile(q=0.5, axis=0, numeric_only=True, interpolation=’linear’)

  • 引数
    • q : 取得する分位数を指定します <float / array-like>
      • 0 ≦ q ≦ 1 の範囲で指定します
      • 複数の分位数を取得する場合はarray-likeでqを指定します
    • axis : 各列/行のどちらの分位数を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列ごとの項目(=行)の分位数を取得します(デフォルト)
      • 1 / ‘columns’ -> 各行ごとの項目(=列)の分位数を取得します
    • numeric_only : 数値データのみ対象とするかどうかを指定します <bool>
      • True -> データ型がint, float, boolのデータのみ計算に入れます
      • False -> すべてのデータ型のデータを計算にいれます
    • interpolation : 分位数が元のデータとデータの間の場合に、その補間方法を指定します <{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}>
      • ‘linear’ -> 前後の値から線形補間したものを分位数とします
      • ‘lower’ -> 前後の値の小さい方を分位数とします
      • ‘higher’ -> 前後の値の大きい方を分位数とします
      • ‘midpoint’ -> 前後の値の中間を分位数とします
      • ‘nearest’ -> 前後の値のうち、近い方を分位数とします
  • 戻り値
    • return : qで指定された分位数 <Series / DataFrame>
      • qがfloatの場合はSeries、qがarray-likeの場合はDataFrameで取得されます

サンプルコード・解説記事

print(df.quantile([0, 0.25, 0.5, 0.75, 1]))

sem

@ [APIドキュメント]

sem(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)

  • 引数
    • axis : 各列/行のどちらの標準誤差を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列ごとの項目(=行)の標準偏差を取得します(デフォルト)
      • 1 / ‘columns’ -> 各行ごとの項目(=列)の標準偏差を取得します
    • skipna : 欠損値を除外するかどうかを指定します <bool>
      • True -> 欠損値を除外する(デフォルト)
      • False -> 欠損値を除外しない
    • level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
    • ddof : デルタ自由度 <int>
    • numeric_only : 数値データのみ対象とするかどうかを指定します <bool>
      • True -> データ型が数値のデータのみ計算に入れます (デフォルト)
      • False -> すべてのデータ型のデータを計算にいれます
  • 戻り値
    • return : 各列/行の標準誤差 <Series / DataFrame>
      • levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります

sum

@ [APIドキュメント]

sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)

  • 引数
    • axis:各列/行のどちらの合計を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ → 各列ごとの項目(=行)の標準偏差を取得します(デフォルト)
      • 1 / ‘columns’ → 各行ごとの項目(=列)の標準偏差を取得します
    • skipna:欠損値を除外するかどうかを指定します <bool>
      • True → 欠損値を除外する(デフォルト)
      • False → 欠損値を除外しない
    • level:マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
    • numeric_only:数値データのみ対象とするかどうかを指定します <bool>
      • True → データ型が数値のデータのみ計算に入れます (デフォルト)
      • False → すべてのデータ型のデータを計算にいれます
    • min_count:計算に入れる最小の値 <int>
  • 戻り値
    • return : 各列/行の標準誤差 <Series / DataFrame>
      • levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります

std

@ [APIドキュメント]

std(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)

  • 引数
    • axis : 各列/行のどちらの標準偏差を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列ごとの項目(=行)の標準偏差を取得します(デフォルト)
      • 1 / ‘columns’ -> 各行ごとの項目(=列)の標準偏差を取得します
    • skipna : 欠損値を除外するかどうかを指定します <bool>
      • True -> 欠損値を除外する(デフォルト)
      • False -> 欠損値を除外しない
    • level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
    • ddof : デルタ自由度 <int>
    • numeric_only : 数値データのみ対象とするかどうかを指定します <bool>
      • True -> データ型が数値のデータのみ計算に入れます (デフォルト)
      • False -> すべてのデータ型のデータを計算にいれます
  • 戻り値
    • return : 各列/行の標準偏差 <Series / DataFrame>
      • levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります

サンプルコード・解説記事

print(df.std())

var

@ [APIドキュメント]

var(axis=None, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)

  • 引数
    • axis : 各列/行のどちらの分散を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
      • 0 / ‘index’ -> 各列ごとの項目(=行)の分散を取得します(デフォルト)
      • 1 / ‘columns’ -> 各行ごとの項目(=列)の分散を取得します
    • skipna : 欠損値を除外するかどうかを指定します <bool>
      • True -> 欠損値を除外する(デフォルト)
      • False -> 欠損値を除外しない
    • level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
    • ddof : デルタ自由度 <int>
      • 分散の計算における自由度を n – ddof とします
      • デフォルトでは ddof=1 となっているので、自由度 n-1 の不偏分散が計算されます
      • 不偏分散ではなく標本分散を計算する場合は ddof=0 とします
    • numeric_only : 数値データのみ対象とするかどうかを指定します <bool>
      • True -> データ型が数値のデータのみ計算に入れます (デフォルト)
      • False -> すべてのデータ型のデータを計算にいれます
  • 戻り値
    • return : 各列/行の分散 <Series / DataFrame>
      • levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります

サンプルコード・解説記事

print(df.var())

インスタンスメソッド – Reindexing / selection / label manipulation

drop

@ [APIドキュメント]

drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=’raise’)

  • 引数
    • labels :
    • axis : <{index(0) / columns(1)}>
    • index :
    • columns :
    • level :
    • inplace :
    • errors :
  • 戻り値
    • return :

reset_index

@ [APIドキュメント]

reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=”)

サンプルコード・解説記事

# 一旦マルチインデックスを指定します
df = df.set_index(['day', 'time', 'sex'])
# マルチインデックスを解除します
df = df.reset_index()
print(df)

set_index

@ [APIドキュメント]

set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)

  • 引数
    • keys : 行ラベルとして使う列 <str / array-like / …>
      • 列名やIndexオブジェクト、Seriesオブジェクトなどで指定できます
    • drop : 行ラベルとして設定した列をデータ要素から削除するかどうか <bool>
      • True -> 行ラベルとして設定した列はデータ要素からは削除します
      • False -> 行ラベルとして設定した列をデータ要素としても保持します
    • append : すでに行ラベルが存在する場合に、それに追加して設定するか上書きするか <bool>
      • True -> すでに存在する行ラベルに追加します
      • False -> すでに存在する行ラベルを上書きします
    • inplace : もとのDataFrame自体を更新するかどうか設定します <bool>
      • True -> もとのDataFrame自体もここで指定した行ラベルをいれて更新します
      • False -> もとのDataFrameは変化しません
    • verify_integrity : 行ラベルに用いられる値に重複がないかチェックするかどうか <bool>
      • True -> 行ラベルの重複をチェックします(重複がある場合は例外を発生させます)
      • False -> 行ラベルの重複をチェックしません
  • 戻り値
    • return : 行ラベルを新たに設定したDataFrame <DataFrame>

サンプルコード・解説記事

df = df.set_index(['day', 'time', 'sex'])
print(df)

インスタンスメソッド – Missing data handling

[APIドキュメント]

dropna

@ [APIドキュメント]

dropna(axis=0, how=’any’, thresh=None, subset=None, inplace=False)

fillna

@ [APIドキュメント]

fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

  • 引数
    • value:欠損値を置き換える値 <scalar / dict / Series / DataFrame>
  • 戻り値
    • return:欠損値を置き換えられたDataFrame(inplace=Trueの場合はNone) <DataFrame / None>
  • DataFrameの欠損値(NaN)を指定した値(0など)で置き換えます。

isna

@ [APIドキュメント]

isna()

  • 引数:なし
  • 戻り値:欠損値かどうかをbool値で表した同じ大きさのDataFrame <DataFrame>
  • 要素の値が欠損値であればTrue、欠損値でなければFalseとした新たなDataFrameを返します。
  • Noneやnumpy.NaNなどが欠損値として扱われます。

isnull

@ [APIドキュメント]

isnull()

  • 引数:なし
  • 戻り値:欠損値かどうかをbool値で表した同じ大きさのDataFrame <DataFrame>
  • 元のDataFrameのそれぞれの要素の値が欠損値であればTrue、欠損値でなければFalseとした新たなDataFrameを返します。
  • Noneやnumpy.NaNなどが欠損値として扱われます。
  • このメソッドはisnaメソッドのエイリアスです。

インスタンスメソッド – Reshaping, sorting, transposing

sort_index

@ [APIドキュメント]

sort_index(axis=0, level=None, ascending=True, inplace=False, kind=’quicksort’, na_position=’last’, sort_remaining=True, ignore_index=False)

サンプルコード・解説記事

df_sample_sorted = df_sample.sort_index()
print(df_sample_sorted)

transpose

@ [APIドキュメント]

transpose(*args, copy=False)

インスタンスメソッド – Combining / joining / merging

[APIドキュメント]

append

@ [APIドキュメント]

append(other, ignore_index=False, verify_integrity=False, sort=False)

  • 引数
    • other : 追加するデータ <DataFrame / Series / dict-like>
      • 追加するデータとしてDataFrame / Series / dict-likeのリストも指定可能です
    • ignore_index : 元の行インデックスをそのまま使うかどうかを指定します <bool>
      • False -> 元のDataFrameの行インデックスを変更しません。
      • True -> 元の行インデックスを無視して、新しい行インデックスを振りなおします。
    • verify_integrity : <bool>
    • sort : <bool>
  • 戻り値
    • DataFrame : 元のDataFrameに新しいデータを追加したデータフレーム <DataFrame>
  • DataFrameの最後に新しい行を追加します。
  • もとのDataFrameは変化せずに、データを追加した新しいDataFrameを作成します。

サンプルコード・解説記事

df_sample = pd.read_excel('https://biotech-lab.org/wp-content/uploads/2020/03/dataframe-sample-01.xlsx')
df = pd.DataFrame([['鈴木次郎', '男', 23, '学生'], 
                    ['渡辺秋子', '女', 33, '看護師']],
                    columns=['名前', '性別', '年齢', '職業'])
df_new = df_sample.append(df, ignore_index=True)
print(df_new)
df_sample = pd.read_excel('https://biotech-lab.org/wp-content/uploads/2020/03/dataframe-sample-01.xlsx')
data = {'名前' : '鈴木次郎', '性別' : '男', '年齢' : 23, '職業' : '学生'}
df_new = df_sample.append(data, ignore_index=True)

assign

@ [APIドキュメント]

assign(**kwargs)

  • 引数
    • **kwargs : <dict(Series)>
  • 戻り値

join

@ [APIドキュメント]

join(other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False)

merge

@ [APIドキュメント]

merge(right, how=’inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=’_x’, ‘_y’, copy=True, indicator=False, validate=None)

  • 引数
    • right : 結合させるDataFrameやSeries <DataFrame / Series>
  • 戻り値
    • DataFrame : 結合されたDataFrame <DataFrame>

インスタンスメソッド – Serialization / IO / Conversion

[APIドキュメント]

info

@ [APIドキュメント]

info(verbose=None, buf=None, max_cols=None, memory_usage=None, null_counts=None)

  • DataFrame の簡潔なサマリーを表示します。

サンプルコード・解説記事

df.info()

to_csv

@ [APIドキュメント]

to_csv(path_or_buf=None, sep=’,’, na_rep=”, float_format=None, columns=None, header=True, index=True, index_label=None, mode=’w’, encoding=None, compression=’infer’, quoting=None, quotechar='”‘, line_terminator=None, chunksize=None, date_format=None, doublequote=True, escapechar=None, decimal=’.’, errors=’strict’)

to_excel

@ [APIドキュメント]

to_excel(excel_writer, sheet_name=’Sheet1′, na_rep=”, float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep=’inf’, verbose=True, freeze_panes=None)

  • 引数
    • excel_writer : ファイルパス、もしくはExcelWriterオブジェクト <str / ExcelWriter object>

サンプルコード・解説記事

DataFrame(df)を D:\BioTech-Lab フォルダにxlsxファイルで保存します。

df.to_excel(r'D:\BioTech-Lab\df.xlsx')

to_numpy

@ [APIドキュメント]

to_numpy(dtype=None, copy=False, na_value=<object object>)

  • DataFrameをnumpy.ndarrayに変換します。

to_pickle

@ [APIドキュメント]

to_pickle(path, compression=’infer’, protocol=4)

  • DataFrameをpickleとして保存する

プログラム例

DataFrame(df)を D:\BioTech-Lab フォルダにpickleファイルで保存します。

df.to_pickle(r'D:\BioTech-Lab\df.pickle')