New サムネイル CSSでプレースホルダー(placeholder)の色を変える:ベンダープレフィックスをカンマつ New サムネイル GolangでGoogle Cloud Storageに画像やファイルをアップロードする(os. New サムネイル GoでMySQLやMariaDBのtimestampを読みこむ:データベース接続時に?parse

pandasのDataFrameで条件の否定を指定する(~で否定を表す)

広告

pandas の DataFrame から特定の行を除く方法。今回はあるカラム名の要素が「〜で終わっている」という条件を満たす行を除いてみる。

結論

条件指定に ~ をつける。

df2 = df.loc[~df['市区町村名'].str.endswith('区')]

説明

扱うデータは宮城県の自治体別人口で、出展は総務省統計局である。まずは pandas で csv ファイルを読みこむ。これは read_csv を使う。

import pandas as pd

df = pd.read_csv('宮城県.csv')

次のデータが読みこまれる。

      市区町村名         人口
0      仙台市計  1,060,545
1    仙台市青葉区    292,649
2   仙台市宮城野区    189,777
3    仙台市若林区    134,919
4    仙台市太白区    228,310
5     仙台市泉区    214,890
6        石巻    146,162
7        塩竈     54,873
8       気仙沼     64,947
9        白石     34,718
10       名取     78,460
11       角田     29,713
12      多賀城     62,474
13       岩沼     44,221
14       登米     81,094
15       栗原     69,382
16      東松島     40,247
17       大崎    132,321
18       富谷     52,635

出展
総務省統計局 - 人口・世帯

きちんと pandas の DataFrame が出力された。次に、データから仙台市青葉区などの区を除く。

import pandas as pd

df = pd.read_csv('宮城県.csv')
df2 = df.loc[~df['市区町村名'].str.endswith('区')]

結果はこうなる。

   市区町村名         人口
0   仙台市計  1,060,545
6     石巻    146,162
7     塩竈     54,873
8    気仙沼     64,947
9     白石     34,718
10    名取     78,460
11    角田     29,713
12   多賀城     62,474
13    岩沼     44,221
14    登米     81,094
15    栗原     69,382
16   東松島     40,247
17    大崎    132,321
18    富谷     52,635

「区」の行だけが除かれた。ポイントは ~ という記号で、これは loc 条件の否定にあたる。つけないとどうなるか?

     市区町村名       人口
1   仙台市青葉区  292,649
2  仙台市宮城野区  189,777
3   仙台市若林区  134,919
4   仙台市太白区  228,310
5    仙台市泉区  214,890

区のつく行だけが出力された。

今回は pandas の endswith を使って行を抽出した。文字列の条件指定は pandas の強力な道具である。

pandasの条件にendswithやstartswithなどを指定する

広告

広告

広告

コンピューター コンピューター
プログラミング プログラミング
数学 数学
英語 英語
国語 国語
理科 理科
社会 社会

Python入門

Python入門

化学入門

化学入門

漢字辞典

漢字辞典

整数辞典

漢字辞典

Lord Candy

Lord Candy