【Python】Pandas/DataFrameの基礎をおさえておく
Excelファイルやcsvファイルを扱う際にPandasをよく使うのですが、その流れでDataFrameをなんとなく使ってきました。ここいらでDataFrameの基礎を押さえようと思いました。
基本形
import pandas as pd d = [['岡部 祐二', '64', '男', '050-3888-0689'], ['今関 卓也', '45', '男', '070-0549-9317'], ['弓削 良平', '80', '男', '090-5861-4371'], ['荒木 崇', '44', '男', '090-0495-9588'], ['小川 英樹', '61', '男', '080-0749-9035']] data = pd.DataFrame(data=d) print(data) # 0 1 2 3 # 0 岡部 祐二 64 男 050-3888-0689 # 1 今関 卓也 45 男 070-0549-9317 # 2 弓削 良平 80 男 090-5861-4371 # 3 荒木 崇 44 男 090-0495-9588 # 4 小川 英樹 61 男 080-0749-9035
ヘッダーを設定する方法
もしヘッダー行に題名を入れたい場合はcolumnsキーワードでヘッダー情報を渡します。※import文、変数dの定義は省略。上記コード参照。
header = ['名前', '年齢', '性別', '携帯番号'] data = pd.DataFrame(data=d, columns=header) print(data) # 名前 年齢 性別 携帯番号 # 0 岡部 祐二 64 男 050-3888-0689 # 1 今関 卓也 45 男 070-0549-9317 # 2 弓削 良平 80 男 090-5861-4371 # 3 荒木 崇 44 男 090-0495-9588 # 4 小川 英樹 61 男 080-0749-9035
あとから追加する方法でもOKです。
data.columns = header
インデックス(行名)を設定する方法
※import文、変数dの定義は省略。上記コード参照。
header = ['名前', '年齢', '性別', '携帯番号'] index = ['M001','M002','M003','M004','M005'] data = pd.DataFrame(data=d, columns=header) print(data) # 名前 年齢 性別 携帯番号 # M001 岡部 祐二 64 男 050-3888-0689 # M002 今関 卓也 45 男 070-0549-9317 # M003 弓削 良平 80 男 090-5861-4371 # M004 荒木 崇 44 男 090-0495-9588 # M005 小川 英樹 61 男 080-0749-9035
あとから追加する方法でもOKです。
data.index = index
列を追加する方法
import pandas as pd d = [['岡部 祐二', '64', '男', '050-3888-0689'], ['今関 卓也', '45', '男', '070-0549-9317'], ['弓削 良平', '80', '男', '090-5861-4371'], ['荒木 崇', '44', '男', '090-0495-9588'], ['小川 英樹', '61', '男', '080-0749-9035']] header = ['名前', '年齢', '性別', '携帯番号'] data = pd.DataFrame(data=d, columns=header) campany = ['株式会社スター', '株式会社グリーン', '株式会社ワールド', '株式会社エムレッド', '株式会社エフグリーン'] data['会社名'] = campany print(data) # 名前 年齢 性別 携帯番号 会社名 # 0 岡部 祐二 64 男 050-3888-0689 株式会社スター # 1 今関 卓也 45 男 070-0549-9317 株式会社グリーン # 2 弓削 良平 80 男 090-5861-4371 株式会社ワールド # 3 荒木 崇 44 男 090-0495-9588 株式会社エムレッド # 4 小川 英樹 61 男 080-0749-9035 株式会社エフグリーン
行を追加する方法
追加する配列d2は2次元配列であることに注意。
import pandas as pd d = [['岡部 祐二', '64', '男', '050-3888-0689'], ['今関 卓也', '45', '男', '070-0549-9317'], ['弓削 良平', '80', '男', '090-5861-4371'], ['荒木 崇', '44', '男', '090-0495-9588'], ['小川 英樹', '61', '男', '080-0749-9035']] header = ['名前', '年齢', '性別', '携帯番号'] data = pd.DataFrame(data=d, columns=header) d2 = [['森下 浩', '45', '男', '050-7947-2195']] new = pd.DataFrame(d2, columns=header) data = pd.concat([data, new], axis=0) print(data) # 名前 年齢 性別 携帯番号 # 0 岡部 祐二 64 男 050-3888-0689 # 1 今関 卓也 45 男 070-0549-9317 # 2 弓削 良平 80 男 090-5861-4371 # 3 荒木 崇 44 男 090-0495-9588 # 4 小川 英樹 61 男 080-0749-9035 # 0 森下 浩 45 男 050-7947-2195
スポンサーリンク