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