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)

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
view raw pocketcamp.csv hosted with ❤ by GitHub
connvoi's Picture

About connvoi

肉とビールと料理と写真とゲーム たまに技術 python / Solr / PHP / ansible

アマゾンセール情報サイト アマセール管理人

Jp, Tokyo https://connvoi.com