■インポート
import pandas as pd以降の呼び出し簡略化のため「pd」と名前を付ける
■テーブル作成
df = pd.DataFrame({'列名1':[111,222,333],'列名2':['aaa','bbb','ccc'],'列名3':['a',2,'あ']})
print(df)
#出力
# 列名1 列名2 列名3
# 0 111 aaa a
# 1 222 bbb 2
# 2 333 ccc あ
■列操作
・列を抜き出す
df = df[ ['列名2','列名3'] ] print(df) #出力 # 列名2 列名3 # 0 aaa a # 1 bbb 2 # 2 ccc あ[ ]に列名のリストを指定
列は指定した順になるので並べ替えにも使える
df = df[ ['列名2'] ] print(type(df)) df = df['列名2'] print(type(df)) #出力 # <class 'pandas.core.frame.DataFrame'> # <class 'pandas.core.series.Series'>1列抜き出す場合もリストで指定する
リストでないとシリーズとして抜き出される
・列を削除する
df = df.drop(['列名2'], axis=1) print(df) #出力 # 列名1 列名3 # 0 111 a # 1 222 2 # 2 333 あ.drop()の第一引数に削除したい列名のリスト
第二引数にaxis=1を指定(デフォルト(axis=0)だと行の削除になる)
※1列だけ削除する場合はリストでなくても可
・列を追加する
df['列名4'] = ['b','3','い'] print(df) #出力 # 列名1 列名2 列名3 列名4 # 0 111 aaa a b # 1 222 bbb 2 3 # 2 333 ccc あ い[ ]で追加したい列名を指定
そこに値のリストを代入する
※リストのサイズは行数と合わせる
df['列名4'] = 'd' print(df) #出力 # 列名1 列名2 列名3 列名4 # 0 111 aaa a d # 1 222 bbb 2 d # 2 333 ccc あ d値だけ指定した場合は全行で同じ値となる
df['列名4'] = df['列名1'] * 3 print(df) #出力 # 列名1 列名2 列名3 列名4 # 0 111 aaa a 333 # 1 222 bbb 2 666 # 2 333 ccc あ 999元の列を使い演算することも可能
・列の値を変更する
df['列名3'] = [444, 555, 666] print(df) #出力 # 列名1 列名2 列名3 # 0 111 aaa 444 # 1 222 bbb 555 # 2 333 ccc 666[ ]で変更したい列名を指定
そこに値のリストを代入する
df['列名3'] = df['列名1'] * 3 print(df) #出力 # 列名1 列名2 列名3 # 0 111 aaa 333 # 1 222 bbb 666 # 2 333 ccc 999元の列を使い演算することも可能
・列名を変更する
df = df.rename(columns={'列名1':'col1','列名3':'col3'})
print(df)
#出力
# col1 列名2 col3
# 0 111 aaa a
# 1 222 bbb 2
# 2 333 ccc あ
.rename()にcolumns=辞書型で指定keyが元の列名、valueが変更後の列名
※columns=を付けないとインデックスの名前変更になる
df.columns = ['col1','col2','col3'] print(df) #出力 # col1 col2 col3 # 0 111 aaa a # 1 222 bbb 2 # 2 333 ccc あ全ての列名を変える場合はdf.columnsにリストを代入でも可
※リストのサイズは列数に合わせる
0 件のコメント:
コメントを投稿