地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

pandas メモ

概要

データ基礎試験受けるかもようのメモ

「Pandas」は Python のライブラリで、データを効率的に解析するためのライブラリ

pandas - Python Data Analysis Library

Tips

#最大値、最小値、平均値、標準偏差などの参照
df.describe()
#各列のデータ型の参照
df.info()
#データの先頭数行を閲覧する
df.head()
#データの末尾数行を閲覧する
df.tail()
#データの次元数(何行、何列あるか)
df.shape
# 値の個数
df["column"].value_counts()
# 値の個数(上と同じ)
pd.value_counts(df["column"])
# 列名の一覧①
df.columns
# 列名の一覧②
df.count()

欠損値の削除

# dfに1個でも欠損値があったら行を削除する
df.dropna(axis = 0, how = 'any', inplace=True)

# 閾値を決めてドロップする(欠損した列を3列以上もつ行を削除する)
# inplaceしないとソースデータに反映されない。
df.dropna(thresh=3,inplace=True)

欠損値の穴埋め

fillna
df.loc[df["単価"].isna(),"単価"] = 0

欠損値を無視して計算する

# 計算の際に少しでも欠損値があると結果Nanになる。欠損値を無視するオプションを使う。
df.sum(skipna=False)
df.mean(skipna=False)

列へ代入

df.loc[:,"単価"] = 0

特定の列を抽出して代入

df.loc[df["単価"] == "支給", "単価"] = 0

正規表現で列を追加

df["grade"] = df["品名"].str.extract(
"(^[A-Z]{2}|^[A-Z]{2}|^/d/d?//d+|^[0-9][0-9]?/[0-9]*)", expand=False)

グループ化 に使う構文・メソッド

グループはgroupbyオブジェクトを使う

  • df.groupby()を使う。
    • グループ化して変数に入れると変数にはGroupbyオブジェクトが入る。(DataFraem,Seriesではない)
df.groupby('items').get_group('item_1')
g1 = df.groupby('items')
print(g1.groups)
df.groupby('items').size()
# まとめて集約
df_s.groupby("袋詰場所").agg(np.sum)
# 辞書を使った集約
df_s.groupby("袋詰場所").agg({"総生産数":np.sum, "ロット":"first" })

参考

データ分析で頻出のPandas基本操作 - Qiita