Irohabook
0
2302

pandasの条件にendswithやstartswithなどを指定する(str.endswithを使う)

pandas の loc などを使うとき、条件に endswith を指定するには次のようにする。

import pandas as pd

df = pd.read_csv('H30.csv', encoding='SHIFT-JIS')
rows = df.loc[df['市区町丁'].str.endswith('計')]

print(rows)

ポイントはここ。

df['市区町丁'].str.endswith('計')

市区町丁という列名の列で、単語が「計」で終わるものだけを選んでいる。通常の条件指定では

df['市区町丁'] == '計'

のようにするが、今回のように文字列の関数を使うときは str.endswith を用いる。

ちなみにもとの csv データは東京都の犯罪発生件数である。

市区町丁    総合計 凶悪犯計    凶悪犯強盗   凶悪犯その他
千代田区神田練塀町   17  0   0   0
千代田区神田相生町   13  0   0   0
千代田区計   3204    11  8   3
中央区銀座1丁目    66  1   1   0

引用 警視庁 - 発生状況・統計

千代田区計という行に注目してほしい。「計」という言葉で終わっている。

千代田区計   3204    11  8   3

pandas の startswith

千代田区という言葉から始まる市区町丁を検索するときは startswith を使う。

import pandas as pd

df = pd.read_csv('H30.csv', encoding='SHIFT-JIS')
rows = df.loc[df['市区町丁'].str.startswith('千代田区')]

print(rows)

結果はこうなる。

              市区町丁   総合計  凶悪犯計  凶悪犯強盗  ...  その他占有離脱物横領  その他その他知能犯  その他賭博  その他その他刑法犯
0       千代田区丸の内1丁目   639     3      3  ...           6         18      0         31
1       千代田区丸の内2丁目    53     0      0  ...           1          3      0          6
2       千代田区丸の内3丁目    68     1      1  ...           1          2      0          6
3       千代田区大手町1丁目    58     0      0  ...           3          1      0          7
4       千代田区大手町2丁目    23     0      0  ...           1          0      0          3
5       千代田区内幸町1丁目    26     1      0  ...           2          0      0          3
6       千代田区内幸町2丁目    17     0      0  ...           0          0      0          1
7       千代田区有楽町1丁目   121     0      0  ...           1          0      0          5
8       千代田区有楽町2丁目   167     0      0  ...           2          1      0          7
9       千代田区霞が関1丁目    24     0      0  ...           0          2      0          6
10      千代田区霞が関2丁目    10     0      0  ...           0          0      0          3
11      千代田区霞が関3丁目     7     0      0  ...           1          1      0          0
12      千代田区永田町1丁目    21     0      0  ...           0          0      0          8
13      千代田区永田町2丁目    26     0      0  ...           0          0      0          4
14          千代田区隼町     1     0      0  ...           0          0      0          1
15      千代田区平河町1丁目    10     0      0  ...           0          0      0          0
16      千代田区平河町2丁目     8     0      0  ...           0          1      0          0
17       千代田区麹町1丁目    18     1      0  ...           1          0      0          3
18       千代田区麹町2丁目     3     0      0  ...           0          0      0          2
19       千代田区麹町3丁目     6     0      0  ...           0          0      0          2
20       千代田区麹町4丁目    14     0      0  ...           1          0      0          1
21       千代田区麹町5丁目     4     1      1  ...           0          0      0          1
22       千代田区麹町6丁目    10     0      0  ...           0          1      0          2
23        千代田区紀尾井町    28     0      0  ...           0          0      0          1
24         千代田区一番町     8     0      0  ...           0          0      0          2
25         千代田区二番町     6     0      0  ...           1          0      0          1
26         千代田区三番町     9     0      0  ...           0          0      0          1
27         千代田区四番町     3     0      0  ...           0          0      0          0
28         千代田区五番町    20     0      0  ...           2          0      0          1
29         千代田区六番町    13     0      0  ...           1          1      0          3
..             ...   ...   ...    ...  ...         ...        ...    ...        ...
83      千代田区外神田5丁目     9     0      0  ...           1          0      0          0
84      千代田区外神田6丁目    23     0      0  ...           1          0      0          1
85      千代田区鍛冶町1丁目    23     0      0  ...           1          0      0          3
86      千代田区鍛冶町2丁目    84     0      0  ...           5          0      0          6
87    千代田区神田鍛冶町3丁目    16     0      0  ...           0          0      0          0
88       千代田区神田紺屋町     6     0      0  ...           0          0      0          1
89      千代田区神田北乗物町     1     0      0  ...           0          0      0          1
90       千代田区神田富山町     4     0      0  ...           0          0      0          2
91       千代田区神田美倉町     2     0      0  ...           0          0      0          0
92      千代田区岩本町1丁目     6     0      0  ...           0          0      0          2
93      千代田区岩本町2丁目    19     0      0  ...           1          0      0          2
94      千代田区岩本町3丁目    15     0      0  ...           2          1      0          0
95      千代田区神田西福田町     2     0      0  ...           0          0      0          1
96      千代田区神田東松下町     2     0      0  ...           0          0      0          0
97       千代田区神田岩本町    13     0      0  ...           3          0      0          0
98      千代田区東神田1丁目    16     0      0  ...           2          0      0          1
99      千代田区東神田2丁目    15     0      0  ...           1          0      0          3
100     千代田区東神田3丁目     2     0      0  ...           0          0      0          0
101      千代田区神田和泉町     9     0      0  ...           1          0      0          0
102  千代田区神田佐久間町1丁目    71     0      0  ...           3          0      0          6
103  千代田区神田佐久間町2丁目    11     0      0  ...           1          0      0          1
104  千代田区神田佐久間町3丁目    16     1      1  ...           0          0      0          1
105  千代田区神田佐久間町4丁目     3     0      0  ...           0          0      0          1
106      千代田区神田平河町     4     0      0  ...           1          0      0          0
107      千代田区神田松永町    17     0      0  ...           2          0      0          5
108      千代田区神田花岡町    42     0      0  ...           2          0      0          2
109    千代田区神田佐久間河岸     2     0      0  ...           0          0      0          0
110      千代田区神田練塀町    17     0      0  ...           2          2      0          2
111      千代田区神田相生町    13     0      0  ...           0          0      0          1
112          千代田区計  3204    11      8  ...         105         50      0        298

引用 警視庁 - 発生状況・統計

次の記事

pandas