Excel関数をNumpyやPandasで処理したい

Numpy

Excel関数(Count,Countif,Sumif)をPythonで処理しましょう!
ここでは実例を交え手法を解説します。

Pandasで実現

count関数

まずはサンプルデータを読み込んでください。
今回は従業員の冬休み前後の行動予定のシートです。 →「koudou.xlsx」

読み込むコードは以下となります。
列データの条件(数値)を指定してカウントするコードです

import pandas as pd
df=pd.read_excel('koudou.xlsx')
df['氏名'].count() #氏名の数 = 従業員の人数(下表のNo.1)
df[df['12月25日']=='出勤'].count() #12月25日の出勤の人数(下表のNo.2)

これが行データの条件(数値)を指定してカウントするコードになるとこちら

No.基本形説明
1df[‘氏名’].count()データフレーム の氏名の個数をカウント(=人数カウント)
2df[df[’12月25日’]==’出勤’].count()データフレーム の列データ(12月25日)が”出勤”の人数をカウント
3df.query(‘社員ID>=500’).count()データフレーム の列データ(社員ID)が500番以上の人数をカウント

count()メソッドはSeries(1次元)にしか存在しないので、DataFrameに適用させたい場合はApplyメソッドを使う必要があります。このためデータフレーム全体の数を数えようとしたときに急に難解になります。
上記の行動予定表の12月24日から日毎の状況を見るには以下のコードになります。

df.iloc[:,2:].apply(pd.value_counts)

apply(pd.value_counts)については今のところ呪文のようなものと理解しておいてもらえると助かります。

コメント

タイトルとURLをコピーしました