【python】pandasを用いたcsvデータ処理の基本
今回はpythonのライブラリPandasをつかってcsvデータを処理する基本について紹介していきたいと思います。
基本形式
import pandas as pd
df = pd.read_csv("file.csv",header=None)
※file.csvは任意のcsvファイル
このようにして、csvからpandasにデータを取り込むことができます。
データ表示系コマンド
先頭5行のデータを表示
df.head()
()内に値をわたすと、その行数分データを表示する
df.head(30)なら先頭30行表示
最後尾5行データを表示
df.tail()
データの形状(行,列)形式で表示
df.shape
データ型の表示
type(df)
データの詳細情報を表示
df.info():
基本統計量
df.describe()
ちなみに、統計の基本がわからないひとはこちらで学ぶのもありです。
こちらがかなりわかりやすく紹介してくれていて評判もいいです。
相関関係を出す
df.corr()
不要な行をスキップして、データを読み込む
pd.read_csv("file.csv",skipfooter=X,engine="python")
footerのX行をスキップする
※engineでpythonを指定
カラム名を取得
df.columns
df.columns=[]
で[]内に値を指定していくことおでcolumn名を変更できる
カラムの追加
df.columns["追加したいカラム名"]="データ"
任意のデータを軸にデータを出しなおす(グルーピング)
変数 = df.groupby("任意のデータ軸")
小まとめ
pd.read_csv() CSVデータからデータフレームの作成
DataFrame.head() データフレームの最初の5行を表示(デフォルト)
DataFrame.tail() データフレームの最後の5行を表示(デフォルト)
DataFrame['A'] 列「A」の要素へアクセス
DataFrame.corr() 各項目の相関係数
DataFrame.groupby() グルーピングによるデータの集計
データフレームの値を処理
欠損データの確認
df.insull().any()
isnull()でbool型の返り値が得られる
欠損データの合計値を確認
df.isnull().sum()
欠損データを埋める
df.fillna(method=ffill)
ちなみにfillnaというのは、こういう成り立ちではないかと。
fillna → fill na → fill NaN(意味:欠損データを埋める)
()内のmethod=ffillは最後の有効な値(NaNの前の値)で欠損データを埋めるという意味です。
データの中央値で埋める場合
df['データ'].median()
とします。
Lambda式あるいは関数を用いてデータを追加する方法
ちなみに、Lambda式は関数を式として扱い変数に代入できるようにする手法で、プログラムのコードを簡潔にするメリットがあります。
例1.
lambda式をつかって身長と体重のデータにBMIデータを付加する方法
df['BMI']=df.apply(lambda row: row['Weight']/((row['Height']/100)**2),axis=1)
例2.
関数をつかって身長と体重のデータにBMIデータを付加する方法
def get_bmi(row):
return row['Weight'] / ((row['Height']/100)**2)
df['BMI']=df.apply(get_bmi, axis=1)
上記、例1と2の方法はどちらでも同じ結果が得られます。
データセットのマージ
pd.merge(df1,df2,on='結合するデータのカラム名') 2つのデータフレームの結合
pd.concat(df1,df2) 2つのデータフレームの連結
DataFrame.reset_index データフレームのindexを振り直す
【データフレームの連結と結合の違い】
連結:カラム名の異なるデータ同士をくっつける
結合:カラム名の等しいデータ同士をくっつける
もっと体系的にPandasを学んでいきたいひとは、UdemyでPandasの講座を受講してみるのがおすすめです。
ではでは!