pythonでDataFrameを使うときのTips
pythonでDataframeを扱うときのメモ
利用したデータはこれ
sortのために全員2017年に生まれてたことに。
複数の条件式の指定
andは&でつなぐ
orは|でつなぐ
それぞれの式は括弧でまとめておく
#読み込みはこんなかんじで
import pandas as pd
df=pd.read_csv('pocketcamp.csv')
#クール属性かつオスの住人一覧
df[(df['ATTRIBUTE']=='クール') & (df['SEX']=='male')]
ID NAME SEX ATTRIBUTE BIRTH
2 セルバンテス male クール 2017-04-30
4 アポロ male クール 2017-07-04
25 リカルド male クール 2017-12-06
34 シュバルツ male クール 2017-06-16
39 ボルト male クール 2017-10-06
#クールかつナチュラルの住人一覧
df[(df['ATTRIBUTE']=='クール') | (df['ATTRIBUTE']=='ナチュラル')]
ID NAME SEX ATTRIBUTE BIRTH
0 アグネス female クール 2017-04-21
1 アルベルト male ナチュラル 2017-06-09
2 セルバンテス male クール 2017-04-30
4 アポロ male クール 2017-07-04
5 ペーター male ナチュラル 2017-04-05
sortの際の第2,3ソート条件の指定
#第1ソートに性別, 第2ソートに誕生日を設定する
df[df['ATTRIBUTE']=='ナチュラル'].sort_values(by=['SEX','BIRTH'], ascending=False)
ID NAME SEX ATTRIBUTE BIRTH
32 サンデー male ナチュラル 2017-07-24
1 アルベルト male ナチュラル 2017-06-09
17 リッキー male ナチュラル 2017-06-03
20 ハムスケ male ナチュラル 2017-05-30
31 ビンタ male ナチュラル 2017-04-11
5 ペーター male ナチュラル 2017-04-05
33 ペンタ male ナチュラル 2017-01-05
19 キャラメル female ナチュラル 2017-12-27
15 エレフィン female ナチュラル 2017-12-08
16 ドレミ female ナチュラル 2017-03-26
複数カラムを指定してユニークを残す
drop_duplicatesにlistを指定して実現できる
#属性と性別だけのユニークを取る
df.drop_duplicates(['ATTRIBUTE', 'SEX']).sort_values(by=['ATTRIBUTE'])
ID NAME SEX ATTRIBUTE BIRTH
0 アグネス female クール 2017-04-21
2 セルバンテス male クール 2017-04-30
7 グラさん male スポーティ 2017-08-08
11 チャーミー female スポーティ 2017-04-17
1 アルベルト male ナチュラル 2017-06-09
15 エレフィン female ナチュラル 2017-12-08
3 アップル female ファンシー 2017-09-24k
属性の数をカウント
groupby.sumでやる
df['COUNT']=1
df.groupby('ATTRIBUTE').sum()
ID COUNT
ATTRIBUTE
クール 153 8
スポーティ 220 11
ナチュラル 189 10
ファンシー 218 11
ファンシー住民は女子しかいないのか。。。
元データ(pocketcamp.csv)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ID | NAME | SEX | ATTRIBUTE | BIRTH | |
|---|---|---|---|---|---|
| 0 | アグネス | female | クール | 2017-04-21 | |
| 1 | アルベルト | male | ナチュラル | 2017-06-09 | |
| 2 | セルバンテス | male | クール | 2017-04-30 | |
| 3 | アップル | female | ファンシー | 2017-09-24 | |
| 4 | アポロ | male | クール | 2017-07-04 | |
| 5 | ペーター | male | ナチュラル | 2017-04-05 | |
| 6 | エーミー | female | ファンシー | 2017-10-06 | |
| 7 | グラさん | male | スポーティ | 2017-08-08 | |
| 8 | リリアン | female | ファンシー | 2017-05-09 | |
| 9 | ジョン | male | スポーティ | 2017-11-01 | |
| 10 | マミイ | female | ファンシー | 2017-12-05 | |
| 11 | チャーミー | female | スポーティ | 2017-04-17 | |
| 12 | アセロラ | female | スポーティ | 2017-03-17 | |
| 13 | ハンナ | female | クール | 2017-05-11 | |
| 14 | クリスチーヌ | female | ファンシー | 2017-08-28 | |
| 15 | エレフィン | female | ナチュラル | 2017-12-08 | |
| 16 | ドレミ | female | ナチュラル | 2017-03-26 | |
| 17 | リッキー | male | ナチュラル | 2017-06-03 | |
| 18 | さすけ | male | スポーティ | 2017-11-21 | |
| 19 | キャラメル | female | ナチュラル | 2017-12-27 | |
| 20 | ハムスケ | male | ナチュラル | 2017-05-30 | |
| 21 | プスケ | male | スポーティ | 2017-03-11 | |
| 22 | ツバクロ | male | スポーティ | 2017-07-17 | |
| 23 | ケッチャプ | female | ファンシー | 2017-07-27 | |
| 24 | 1ごう | male | スポーティ | 2017-08-01 | |
| 25 | リカルド | male | クール | 2017-12-06 | |
| 26 | レイニー | female | ファンシー | 2017-02-04 | |
| 27 | マーガレット | female | ファンシー | 2017-09-03 | |
| 28 | ジンペイ | male | スポーティ | 2017-01-12 | |
| 29 | ももこ | female | ファンシー | 2017-06-08 | |
| 30 | ダンベル | male | スポーティ | 2017-09-11 | |
| 31 | ビンタ | male | ナチュラル | 2017-04-11 | |
| 32 | サンデー | male | ナチュラル | 2017-07-24 | |
| 33 | ペンタ | male | ナチュラル | 2017-01-05 | |
| 34 | シュバルツ | male | クール | 2017-06-16 | |
| 35 | ブーケ | female | ファンシー | 2017-02-27 | |
| 36 | ラン | female | クール | 2017-10-21 | |
| 37 | アクリル | female | ファンシー | 2017-04-09 | |
| 38 | タンボ | male | スポーティ | 2017-08-03 | |
| 39 | ボルト | male | クール | 2017-10-06 |