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

事前にimport

import pandas as pd
import numpy as np

データ作成編

コピーの読み取り

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

CSVの読み取り

df = pd.read_csv(ファイル名, header=None)
# `header=None`を指定せず`pd.read_csv(ファイル名)`とした場合は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'])

データ更新編

単一データの更新

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

複数データの一括更新

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