9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Jupyter-notebook初心者がよく使うpandas関数まとめてみた

Last updated at Posted at 2019-02-06

jupyter notebookを最近使い始めたので、よく使う関数まとめてみた
ちなみにpython自体、趣味で少し使う程度

pandasのインポート : import

import pandas as pd

csvインポート : read_csv()

df = pd.read_csv("hoge.csv", encoding="utf-8")

csvエクスポート : to_csv()

df.to_csv('result.csv')

統計値の一括表示 : describe()

df.describe()

行と列の入れ替え(転置) : T

df.T

特定の要素の取得 : loc(),iloc()

※ソート順ではなくindexに準拠するので注意

## 行番号と列番号の指定
# 特定の要素を取得(1行目の2列目)
df.iloc[1, 2]

# スライスも可能(1~10行目の1~10列目)
df.iloc[1:10,1:10]

## ラベルの指定
# 'index_1'の'column_a'の値を取得
df.loc['index_1', 'column_a']

# スライスも可能
df.loc['index_1':'index_3', 'column_a':'column_d']

列数,行数などのサイズ取得 : len(),shape(),size()

# 行数
len(df)

# 列数
len(df.columns)

# 両方(行と列)
df.shape

# 要素数
df.size

列の削除 : drop()

df.drop(['column_a','column_b'], axis='columns')

列(column),行(index)の名前変更 : rename()

df.rename(columns={'column_a': 'a'}, index={'index_1': 'index_0001'}, inplace=True)

欠損値のチェック(便利) : to_datetime()

df.isnull().any(axis=0)

# 欠損がある場合Trueに
# column_a    False
# column_b    True
# column_c    True
# column_d    False

欠損値の置換 : fillna()

# 全て0で埋める場合
df.fillna(0)

# 列指定で埋める場合
df.fillna({'column_b': 0})

四捨五入: fillna()

# 整数
df.round()

# 少数第3位で四捨五入
df.round(2)

時間型の変換 : to_datetime()

変換しておくと何かと便利    

pd.to_datetime(df['datetime'])

DataFrameのソート : sort_values()

df.sort_values(['date', 'id'], ascending=[False, True], inplace=True)

DataFrameのindex振り直し : reset_index()

# dropを指定しない場合、新たな列にindexが追加される
df.sort_values(['date', 'id'], ascending=[False, True]).reset_index(inplace=True, drop=True)

合計値・平均・標準計算 : sum(), mean(), std()

# 列ごと
df.sum()

# 行ごと
df.sum(axis=1)

# 合計:sum()
# 平均:mean()
# 標準偏差:std()

条件抽出 : where()

# 抽出
df.where(df['date'] >= '2018-07-18')

# 抽出すると条件外の行は全てNaNになるので、削除する場合
df.where(df['date'] >= '2018-07-18').dropna(how='all')

DataFrameの結合 : merge()

pd.merge(df_a, df_b, on='id', how='inner')

# 内部結合(inner_join): how='inner'
# 左結合(left_join): how='left'
# 右結合(right_join): how='right'
# 外部結合(outer_join): how='outer'

ランキング : rank()

df.rank(method='dense', ascending=False)['column_a']

ざっとまとめてみました。
その他、ループやgroup,カウントなど便利なものがまだまだあるので後日。

9
13
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
9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?