DataFrame クラス (pandas モジュール)
class DataFrame(NDFrame)
属性
attrs
- DataFrameのメタデータ <dict>
- DataFrameのメタデータを辞書形式で格納します
columns
- DataFrame の列ラベル <Index>
解説記事
print(df.columns)
dtypes
- DataFrameの各列のデータ型 <Series>
iloc
- 行番号 / 列番号を用いて行と列を指定し、その要素を取り出します。 <Object / Series / DataFrame>
- 要素の指定の仕方によりObject / Series / DataFrameが返されます。
解説記事
print(df.iloc[1, 0])
index
- DataFrameの行ラベル <Index>
loc
- 行ラベル・列ラベルを用いて行と列を指定し、その要素を取り出します。 <Object / Series / DataFrame>
- 要素の指定の仕方によりObject / Series / DataFrameが返されます。
サンプルコード・解説記事
print(df.loc[1, '名前'])
shape
- DataFrame の行数・列数を表すタプル <tuple(int)>
解説記事
print(df.shape)
size
- DataFrameの全要素数を表します <int>
解説記事
print(df.size)
T
- 行と列を入れ替えたDataFrameを表します <DataFrame>
特殊メソッド
__init__
__init__(data=None, index=None, columns=None, dtype=None, copy=False)
- 引数
- data : 入力データ
- 辞書にはSeries, arrays, constants, or list-likeオブジェクトを格納できる
- Python 3.6 以降では辞書型の順序も維持される
- index : 結果として得られたデータフレームで用いられる行インデックス
- 何も指定されない場合のデフォルトは数値によるインデックス(RangeIndex: 0, 1, 2, …, n)が与えられる
- columns : 結果として得られたデータフレームの列ラベル
- 何も指定されない場合のデフォルトは数値によるインデックス(RangeIndex: 0, 1, 2, …, n)が与えられる
- dtype : データ型
- 何も指定されない場合は、入力データから推論される
- copy : 入力されたデータを参照しながら使う(False)のか、コピーを作成して用いる(True)のかを指定する <bool>
- data : 入力データ
サンプルコード・解説記事
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__
__iter__()
- 引数:なし
- 戻り値
- iterator:DataFrameの列ラベルを表すイテレータ
インスタンスメソッド – Conversion
astype
astype(dtype, copy = True, errors = ‘raise’)
- 引数
- dtype :
- copy : <bool>
- errors : <{‘raise’, ‘ignore’}>
- 戻り値
- casted : 変換されたDataFrame <DataFrame>
- DataFrameを指定のデータ型に変換します。
インスタンスメソッド – Indexing, iteration
head
head(n=5)
- 引数
- n : 取得する行数 <int>
- 戻り値
- return : 抽出したDataFrame <DataFrame>
- DataFrameの最初のn行を取得します。
iterrows
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
itertuples(index=True, name=’Pandas’)
- 引数
- index:DataFrameのインデックスをnamedtupleの1番最初の要素として入れるかどうかを設定します <bool>
- name:namedtupleの名前を決めます。Noneとした場合は、通常のtupleとなります <str>
- 戻り値
- iterator:DataFrameの行ごとのnamedtuple <namedtuple>
- DataFrameのデータをnamedtupleとして1行ずつ取り出します。
mask
mask(cond, other=nan, inplace=False, axis=None, level=None, errors=’raise’, try_cast=False)
pop
pop(item)
- 引数
- item : 削除して取り出す列のラベル <str>
- 戻り値
- return : 取り出した列 <Series>
- DataFrameから列を削除して、その列を返します。
tail
tail(n=5)
- 引数
- n : 取得する行数 <int>
- 戻り値
- return : 抽出したDataFrame <DataFrame>
- DataFrameの最後のn行を取得します。
query
query(expr, inplace=False, **kwargs)
- 引数
- expr : クエリ条件式 <str>
- inplace : 元のDataFrameをクエリで取得したDataFrameで更新するかどうか
- True -> 元のDataFrameがクエリで取得したDataFrameで置き換わります。
- False -> 元のDataFrameは更新されません。
- 戻り値
- return : クエリで得られた結果 <DataFrame>
where
where(cond, other=nan, inplace=False, axis=None, level=None, errors=’raise’, try_cast=False)
インスタンスメソッド – Function application, GroupBy & Window
groupby
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
corr
corr(method=’pearson’, min_periods=1)
count
count(axis=0, level=None, numeric_only=False)
- 引数
- axis : 各列の行数か各行の列数のいずれをカウントするか指定します <{0 / ‘index’, 1 / ‘columns’}>
- 0 / ‘index’ -> 各列の行数をカウントします
- 1 / ‘columns’ -> 各行の列数をカウントします
- level : マルチインデックスを持つ場合に、カウントするレベルを指定します
- インデックスがマルチインデックスではない場合(シングルインデックスなど)はlevelの設定はできません。
- numeric_only : 数値データのみカウントするかどうか指定します
- True -> データ型がint, float, boolのデータのみカウントします
- False -> すべてのデータ型のデータの個数をカウントします
- axis : 各列の行数か各行の列数のいずれをカウントするか指定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の欠損値を除いたデータ数のカウント結果
- levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
- return : 各列/行の欠損値を除いたデータ数のカウント結果
- それぞれの列、もしくは行の欠損値を除いた項目数を取得します。
- None, NaN, Nat, numpy.inf(pandasのオプションで指定された場合)が欠損値として扱われます。
サンプルコード・解説記事
print(df.count())
cumsum
cumsum(axis=None, skipna=True, *args, **kwargs)
- 引数
- axis:各列/行のどちらの累計を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 0 / ‘index’ → 各列ごとの項目(=行)の累計を取得する(デフォルト)
- 1 / ‘columns’ → 各行ごとの項目(=列)の累計を取得する
- skipna:欠損値を除外するかどうかを指定します
- True → 欠損値を除外する(デフォルト)
- False → 欠損値を除外しない
- axis:各列/行のどちらの累計を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return:指定された累計を表すDataFrame <DataFrame>
describe
describe(percentiles=None, include=None, exclude=None)
- 引数
- percentiles : 結果に含めるパーセンタイル(0から1.の間で指定します)
- デフォルトでは[0.25, 0.5, 0.75]となっています
- include : 結果に含める列をそのデータ型で指定します<‘all’ / list-like(dtype) / None>
- ‘all’ -> すべての列を結果に含めます
- list-like(dtype) -> 結果に含める列のデータ型を指定します
- None -> データ型が数値の列のみを結果に含めます
- exclude :
- list-like(dtype) -> 結果から除外する列のデータ型を指定します
- None -> 結果から除外する列はありません
- percentiles : 結果に含めるパーセンタイル(0から1.の間で指定します)
- 戻り値
- return : DataFrameの各列の基本的な統計量 <Series / DataFrame>
- DataFrameの基本的な統計量を表示して要約します。
数値データからなる列では以下の項目が表示されます。
- count : 欠損値を除いたデータ数
- mean : 平均値
- std : 標準偏差
- min : 最小値
- 25% : 第1四分位数
- 50% : 中央値
- 75% : 第3四分位数
- max : 最大値
文字列からなる列では以下の項目が表示されます。
- count : 欠損値を除いたデータ数
- unique : 重複を除いた項目数
- top : 最も多く出現した項目名
- freq : topの項目の出現回数
サンプルコード・解説記事
print(df.describe())
max
max(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
- 引数
- axis : 各列/行のどちらの最大値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 0 / ‘index’ -> 各列ごとの項目(=行)の最大値を取得する(デフォルト)
- 1 / ‘columns’ -> 各行ごとの項目(=列)の最大値を取得する
- skipna : 欠損値を除外するかどうかを指定します
- True -> 欠損値を除外する(デフォルト)
- False -> 欠損値を除外しない
- level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
- numeric_only : 数値データのみ対象とするかどうか指定します
- True -> データ型がint, float, boolのデータのみ計算に入れます
- False -> すべてのデータ型のデータを計算にいれます
- axis : 各列/行のどちらの最大値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の最大値
- levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
- return : 各列/行の最大値
サンプルコード・解説記事
print(df.max())
mean
mean(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
- 引数
- axis : 各列/行のどちらの平均値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 0 / ‘index’ -> 各列ごとの項目(=行)の平均値を取得する(デフォルト)
- 1 / ‘columns’ -> 各行ごとの項目(=列)の平均値を取得する
- skipna : 欠損値を除外するかどうかを指定します
- True -> 欠損値を除外する(デフォルト)
- False -> 欠損値を除外しない
- level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
- numeric_only : 数値データのみ対象とするかどうか指定します
- True -> データ型がint, float, boolのデータのみ計算に入れます
- False -> すべてのデータ型のデータを計算にいれます
- axis : 各列/行のどちらの平均値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の平均値
- levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
- return : 各列/行の平均値
サンプルコード・解説記事
print(df.mean())
df = df.set_index(['day', 'time', 'sex'])
print(df.mean(level=0))
median
median(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
- 引数
- axis : 各列/行のどちらの中央値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 0 / ‘index’ -> 各列ごとの項目(=行)の中央値を取得する(デフォルト)
- 1 / ‘columns’ -> 各行ごとの項目(=列)の中央値を取得する
- skipna : 欠損値を除外するかどうかを指定します
- True -> 欠損値を除外する(デフォルト)
- False -> 欠損値を除外しない
- level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
- numeric_only : 数値データのみ対象とするかどうか指定します
- True -> データ型がint, float, boolのデータのみ計算に入れます
- False -> すべてのデータ型のデータを計算にいれます
- axis : 各列/行のどちらの中央値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の中央値
- levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
- return : 各列/行の中央値
サンプルコード・解説記事
print(df.median())
min
min(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
- 引数
- axis : 各列/行のどちらの最小値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 0 / ‘index’ -> 各列ごとの項目(=行)の最小値を取得する(デフォルト)
- 1 / ‘columns’ -> 各行ごとの項目(=列)の最小値を取得する
- skipna : 欠損値を除外するかどうかを指定します
- True -> 欠損値を除外する(デフォルト)
- False -> 欠損値を除外しない
- level : マルチインデックスを持つ場合に、計算に入れるレベルを指定します <int / str>
- numeric_only : 数値データのみ対象とするかどうか指定します
- True -> データ型がint, float, boolのデータのみ計算に入れます
- False -> すべてのデータ型のデータを計算にいれます
- axis : 各列/行のどちらの最小値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の最小値
- levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
- return : 各列/行の最小値
サンプルコード・解説記事
print(df.min())
mode
mode(axis=0, numeric_only=False, dropna=True)
- 引数
- axis : 各列/行のどちらの最頻値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 0 / ‘index’ -> 各列ごとの項目(=行)の最頻値を取得する(デフォルト)
- 1 / ‘columns’ -> 各行ごとの項目(=列)の最頻値を取得する
- numeric_only : 数値データのみ対象とするかどうか指定します
- True -> データ型がint, float, boolのデータのみ計算に入れます
- False -> すべてのデータ型のデータを計算にいれます
- dropna : 欠損値を除外するかどうかを指定します
- True -> 欠損値を除外します (デフォルト)
- False -> 欠損値を除外しません
- axis : 各列/行のどちらの最頻値を取得するかを設定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の最頻値 <DataFrame>
サンプルコード・解説記事
print(df.mode())
quantile
quantile(q=0.5, axis=0, numeric_only=True, interpolation=’linear’)
- 引数
- q : 取得する分位数を指定します
- 0 ≦ q ≦ 1 の範囲で指定します
- 複数の分位数を取得する場合はarray-likeでqを指定します
- axis : 各列/行のどちらの分位数を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
- 0 / ‘index’ -> 各列ごとの項目(=行)の分位数を取得します(デフォルト)
- 1 / ‘columns’ -> 各行ごとの項目(=列)の分位数を取得します
- numeric_only : 数値データのみ対象とするかどうかを指定します
- True -> データ型がint, float, boolのデータのみ計算に入れます
- False -> すべてのデータ型のデータを計算にいれます
- interpolation : 分位数が元のデータとデータの間の場合に、その補間方法を指定します <{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}>
- ‘linear’ -> 前後の値から線形補間したものを分位数とします
- ‘lower’ -> 前後の値の小さい方を分位数とします
- ‘higher’ -> 前後の値の大きい方を分位数とします
- ‘midpoint’ -> 前後の値の中間を分位数とします
- ‘nearest’ -> 前後の値のうち、近い方を分位数とします
- q : 取得する分位数を指定します
- 戻り値
- return : qで指定された分位数
- qがfloatの場合はSeries、qがarray-likeの場合はDataFrameで取得されます
- return : qで指定された分位数
サンプルコード・解説記事
print(df.quantile([0, 0.25, 0.5, 0.75, 1]))
sem
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 : 数値データのみ対象とするかどうかを指定します
- True -> データ型が数値のデータのみ計算に入れます (デフォルト)
- False -> すべてのデータ型のデータを計算にいれます
- axis : 各列/行のどちらの標準誤差を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の標準誤差
- levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
- return : 各列/行の標準誤差
sum
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:数値データのみ対象とするかどうかを指定します
- True → データ型が数値のデータのみ計算に入れます (デフォルト)
- False → すべてのデータ型のデータを計算にいれます
- min_count:計算に入れる最小の値 <int>
- axis:各列/行のどちらの合計を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の標準誤差
- levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
- return : 各列/行の標準誤差
std
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 : 数値データのみ対象とするかどうかを指定します
- True -> データ型が数値のデータのみ計算に入れます (デフォルト)
- False -> すべてのデータ型のデータを計算にいれます
- axis : 各列/行のどちらの標準偏差を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の標準偏差
- levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
- return : 各列/行の標準偏差
サンプルコード・解説記事
print(df.std())
var
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 : デルタ自由度
- 分散の計算における自由度を n – ddof とします
- デフォルトでは ddof=1 となっているので、自由度 n-1 の不偏分散が計算されます
- 不偏分散ではなく標本分散を計算する場合は ddof=0 とします
- numeric_only : 数値データのみ対象とするかどうかを指定します
- True -> データ型が数値のデータのみ計算に入れます (デフォルト)
- False -> すべてのデータ型のデータを計算にいれます
- axis : 各列/行のどちらの分散を取得するかを指定します <{0 / ‘index’, 1 / ‘columns’}>
- 戻り値
- return : 各列/行の分散
- levelの指定がない場合はSeries、levelの指定がある場合はDataFrameとなります
- return : 各列/行の分散
サンプルコード・解説記事
print(df.var())
インスタンスメソッド – Reindexing / selection / label manipulation
drop
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
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
set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
- 引数
- keys : 行ラベルとして使う列
- 列名やIndexオブジェクト、Seriesオブジェクトなどで指定できます
- drop : 行ラベルとして設定した列をデータ要素から削除するかどうか
- True -> 行ラベルとして設定した列はデータ要素からは削除します
- False -> 行ラベルとして設定した列をデータ要素としても保持します
- append : すでに行ラベルが存在する場合に、それに追加して設定するか上書きするか
- True -> すでに存在する行ラベルに追加します
- False -> すでに存在する行ラベルを上書きします
- inplace : もとのDataFrame自体を更新するかどうか設定します
- True -> もとのDataFrame自体もここで指定した行ラベルをいれて更新します
- False -> もとのDataFrameは変化しません
- verify_integrity : 行ラベルに用いられる値に重複がないかチェックするかどうか
- True -> 行ラベルの重複をチェックします(重複がある場合は例外を発生させます)
- False -> 行ラベルの重複をチェックしません
- keys : 行ラベルとして使う列
- 戻り値
- return : 行ラベルを新たに設定したDataFrame <DataFrame>
サンプルコード・解説記事
df = df.set_index(['day', 'time', 'sex'])
print(df)
インスタンスメソッド – Missing data handling
dropna
dropna(axis=0, how=’any’, thresh=None, subset=None, inplace=False)
fillna
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
isna()
- 引数:なし
- 戻り値:欠損値かどうかをbool値で表した同じ大きさのDataFrame <DataFrame>
- 要素の値が欠損値であればTrue、欠損値でなければFalseとした新たなDataFrameを返します。
- Noneやnumpy.NaNなどが欠損値として扱われます。
isnull
isnull()
- 引数:なし
- 戻り値:欠損値かどうかをbool値で表した同じ大きさのDataFrame <DataFrame>
- 元のDataFrameのそれぞれの要素の値が欠損値であればTrue、欠損値でなければFalseとした新たなDataFrameを返します。
- Noneやnumpy.NaNなどが欠損値として扱われます。
- このメソッドはisnaメソッドのエイリアスです。
インスタンスメソッド – Reshaping, sorting, transposing
sort_index
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
transpose(*args, copy=False)
インスタンスメソッド – Combining / joining / merging
append
append(other, ignore_index=False, verify_integrity=False, sort=False)
- 引数
- other : 追加するデータ
- 追加するデータとしてDataFrame / Series / dict-likeのリストも指定可能です
- ignore_index : 元の行インデックスをそのまま使うかどうかを指定します
- False -> 元のDataFrameの行インデックスを変更しません。
- True -> 元の行インデックスを無視して、新しい行インデックスを振りなおします。
- verify_integrity : <bool>
- sort : <bool>
- other : 追加するデータ
- 戻り値
- 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
assign(**kwargs)
- 引数
- **kwargs : <dict(Series)>
- 戻り値
join
join(other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False)
merge
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
info
info(verbose=None, buf=None, max_cols=None, memory_usage=None, null_counts=None)
- DataFrame の簡潔なサマリーを表示します。
サンプルコード・解説記事
df.info()
to_csv
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
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
to_numpy(dtype=None, copy=False, na_value=<object object>)
- DataFrameをnumpy.ndarrayに変換します。
to_pickle
to_pickle(path, compression=’infer’, protocol=4)
- DataFrameをpickleとして保存する
プログラム例
DataFrame(df)を D:\BioTech-Lab フォルダにpickleファイルで保存します。
df.to_pickle(r'D:\BioTech-Lab\df.pickle')