python_analytics

主にpythonやライブラリーを使ったデータ解析、機械学習、統計学などについて書いていきます

python pandas sortやfilterについて

pandas 集計処理のsort,filter操作について

↓フィルタ_日カラムで20以上の行を抽出。

sample[sample["日"]>=20].head()
index ID セッション 閲覧時間
0 328667572 31 16 38 5
1 70373573 24 23 37 7
5 302325623 20 8 22 2
12 1511512688 29 21 18 6
13 1842034778 28 19 18 6

↓【フィルタ】日カラムで20の行を抽出。

sample[sample["日"]==20].head()
index ID セッション
5 302325623 20 8 22
22 2034587212 20 23 16
60 737941086 20 1 13
156 1436667790 20 0 10
187 232403266 20 12 10

↓【フィルタ】全体平均以上のセッションのみを抽出。

sample[sample["セッション"]>=sample["セッション"].mean()].head()
ID セッション 閲覧時間
328667572 31 16 38 5
70373573 24 23 37 7
1839656582 12 20 28 6
1471882803 10 22 22 7
302325623 20 8 22 2

↓【並べ替え】IDカラムを昇順で表示。

sample.sort_values(by="ID",ascending=True).head()
ID セッション 閲覧時間
9460 14 15 1 4
9460 25 20 1 6
72625 15 21 1 6
72625 13 20 1 6
85657 13 14 1 4

↓【並べ替え】カラム日が20でカラム時を降順で表示。

sample[sample["日"]==20].sort_values(by="時",ascending=False).head()
ID セッション 閲覧時間
698149150 20 23 1 7
1470678968 20 23 1 7
1978534706 20 23 1 7
561150499 20 23 1 7
1978434835 20 23 1 7

↓【フィルタ】1カラムの6or10をフィルタして抽出

sample.query("時==16 or 時==10")
ID date time セッション 重複 count
0 328667572 20180331 2018-03-31 16:00:00 38 True 31 16
34 129117501 20180311 2018-03-11 10:00:00 14 True 11 10
58 570969895 20180323 2018-03-23 16:00:00 13 True 23 16
88 669719439 20180321 2018-03-21 10:00:00 12 True 21 10
147 1217010981 20180310 2018-03-10 16:00:00 10 True 10 16

↓【フィルタ】500以上且つ11月カラムのみをフィルタして抽出

ff2[(ff2["500以上"]=="500以上") & (ff2["月"]==11)]

↓【フィルタ】文字列時間帯を含むで除外フィルタ抽出

df1=df[~df["時間帯"].str.contains('時間帯')]