LoginSignup
179
220

pandasのDataFrameのデータ操作をよくわすれるので、よく使用する操作を自分のためにまとめた

Last updated at Posted at 2018-01-01

pandasのDataFrameのデータ操作のかんたん早見表を作成したので、データ操作に役立ててください。また最後に、データ分析の流れを経験できるオススメ学習コンテンツを紹介したので、ご参考ください。

事前にimport

import pandas as pd
import numpy as np

データ読み取り編

CSVの読み取り

df = pd.read_csv("ファイル名", header=None)
# `header=None`を指定せず`pd.read_csv("ファイル名")`とした場合は1行目が自動的にカラム名として挿入される

コピーの読み取り

df = pd.read_clipboard(header=None)
# `header=None`を指定せず`pd.read_clipboard()`とした場合は1行目が自動的にカラム名として挿入される

DataFrameの自作

df = pd.DataFrame(np.arange(12).reshape(4,3),index=['行名1','行名2', '行名3', '行名4'], columns=['カラム名1','カラム名2', 'カラム名3'])
# `index=[]`や`column=[]`を指定しない場合は、順に1,2,3・・・となる
# データは`np.arange(12).reshape(4,3)`といった`array`であること

データ抽出編

全カラム名の取得

df.columns

最初の数データ取得

df.head(行数)

各種情報取得

df.describe()

1行の取得

df.loc['行名']
# 出力はSeries型
df.loc[['行名']]
df.iloc[2]
# 出力はSeries型
# カッコ内の数値は先頭を0とする行番号
df.iloc[[2]]
# カッコ内の数値は先頭を0とする行番号

複数行の取得

df.loc[['行名','行名']]
df.iloc[[2,3]]
# カッコ内の数値は先頭を0とする行番号
df.iloc[2:4, :]
# カッコ内の数値はスライス形式で[行の開始位置:行の終了位置-1]

1カラムの取得

df['カラム名']
# 出力はSeries型
df[['カラム名']]
df.loc[:, ['カラム名']]
df.iloc[:, [1]]
# カッコ内の数値は先頭を0とするカラム番号

複数カラムの取得

df[['カラム名','カラム名']]
df.loc[:, ['カラム名','カラム名']]
df.iloc[:, [1,2]]
# カッコ内の数値は先頭を0とするカラム番号

1行1列ピンポイントで取得

df.loc['行名', 'カラム名']
# 出力は値のみ
df.loc['行名']['カラム名']
# 出力は値のみ
df.loc[['行名'], ['カラム名']]
df.iloc[2,1]
# 出力は値のみ
# カッコ内の数値は先頭を0とする[行番号,カラム番号]
df.iloc[[2], [1]]
# カッコ内の数値は先頭を0とする[[行番号],[カラム番号]]
df.at['行名', 'カラム名']
# 出力は値のみ
df.iat[2,1]
# 出力は値のみ
# カッコ内の数値は先頭を0とする[行番号,カラム番号]

複数行複数列を指定して取得

df.loc[['行名','行名'], ['カラム名','カラム名']]
df.iloc[[2,3], [1,2]]
# カッコ内の数値は先頭を0とする[[行番号,行番号], [カラム番号, カラム番号]]
df.iloc[2:4,1:3]
# カッコ内の数値はスライス形式で[行の開始位置:行の終了位置-1, カラムの開始位置:カラムの終了位置-1]

データ削除編

1行の削除

df.drop('行名')

複数行の削除

df.drop(['行名','行名'])

1カラムの削除

df.drop('カラム名', axis =1)

複数カラムの削除

df.drop(['カラム名','カラム名'], axis =1)

データ結合編

横方向に結合

pd.concat([df1, df2], axis =1)

データ変換編

arrayに変換

df.values

dframeに再変換

pd.DataFrame(df.values, index=['行名1','行名2', '行名3', '行名4'], columns=['カラム名1','カラム名2', 'カラム名3'])

csvに出力

df.to_csv("ファイル名.csv")

データ更新編

単一データの更新

データ取得して代入するのみ

複数データの一括更新

ただし代入される側とする側の行数、列数を合わせることは必須。
型もそろえた方が無難(型の違いによる意図しない行列入れ違いが発生するため)。

【最後に】データ分析手法のコンテンツ(私が制作したもの)

私が制作したものですが、初心者向けのPythonデータ分析学習コンテンツです。データの取り込み、前処理から可視化の流れを学習できる教材です。考察イメージまで記載されているのでオススメです。一部無料公開されているので、ご興味あればお試しください。

179
220
1

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
179
220