pandasでCSVファイルを取り扱う（取込、出力、ソート）

pandas で　CSVファイルを取り扱ってみる。

取り扱うデータはこれ。

```infile.csv
number,name,birthymd,sex,yubin,adr1,adr2,sinsei_ymd,nintei_ymd,happu_ymd,syurui,pet,test_nowymd
0000111111,安藤　太一郎,19860602,1,1231111,AAA県BBB市CCC-123,サンプルヴィラA 001号室,20190501,20190507,20190507,1,0,20200229
0000222222,伊藤　炭二郎,19920505,1,1232222,AAA県BBB市CCC-123,サンプルヴィラB 002号室,20190501,20190514,20190514,2,1,20200228
0000333333,鵜飼　多三枝,19990909,2,1233333,AAA県BBB市CCC-123,サンプルヴィラC 003号室,20190501,20190514,20190514,1,2,20200131
0000444444,江崎　幸四郎,19870831,1,1234444,AAA県BBB市CCC-123,サンプルヴィラD 004号室,20190501,20190507,20190507,2,0,20191231
0000555555,岡本　小五郎,19520205,1,1235555,AAA県BBB市CCC-123,サンプルヴィラE 005号室,20190601,20190615,20190615,1,2,20191130
0000666666,柿崎　喜六郎,19811030,1,1236666,AAA県BBB市CCC-123,サンプルヴィラF 006号室,20190601,20190608,20190608,1,2,20191129
0000777777,城島　香七子,19721103,2,1237777,AAA県BBB市CCC-123,サンプルヴィラG 007号室,20190601,20190608,20190608,2,1,20191030
0000888888,釘宮　亜八芽,19330303,2,1238888,AAA県BBB市CCC-123,サンプルヴィラH 008号室,20190501,20190507,20190507,1,1,20190401
0000999999,敬堂　勘九郎,19680229,1,1239999,AAA県BBB市CCC-123,サンプルヴィラI 009号室,20190601,20190615,20190615,2,0,20190331
1111000000,小柳　猿十郎,19200222,1,1240000,AAA県BBB市CCC-123,サンプルヴィラJ 010号室,20190501,20190507,20190507,2,1,20190228
1111111111,佐渡　十一郎,19430130,1,1241111,AAA県BBB市CCC-123,サンプルヴィラK 011号室,20190601,20190608,20190608,1,0,20190227
1111222222,宍戸　十二郎,19530301,1,1242222,AAA県BBB市CCC-123,サンプルヴィラL 012号室,20190501,20190507,20190507,2,1,20190131
```
pandas をインストールした上で、取り込み、表示、出力をしてみる。

```pandas_exam_01.py
import pandas as pd
df = pd.read_csv("infile.csv")
print(df)
df.to_csv('outfile2.csv')
```

表示出力結果

```
        number    name  birthymd  sex    yubin             adr1            adr2  sinsei_ymd  nintei_ymd  happu_ymd  syurui  pet  test_nowymd
0       111111  安藤　太一郎  19860602    1  1231111  AAA県BBB市CCC-123  サンプルヴィラA 001号室    20190501    20190507   20190507       1    0     20200229
1       222222  伊藤　炭二郎  19920505    1  1232222  AAA県BBB市CCC-123  サンプルヴィラB 002号室    20190501    20190514   20190514       2    1     20200228
2       333333  鵜飼　多三枝  19990909    2  1233333  AAA県BBB市CCC-123  サンプルヴィラC 003号室    20190501    20190514   20190514       1    2     20200131
3       444444  江崎　幸四郎  19870831    1  1234444  AAA県BBB市CCC-123  サンプルヴィラD 004号室    20190501    20190507   20190507       2    0     20191231
4       555555  岡本　小五郎  19520205    1  1235555  AAA県BBB市CCC-123  サンプルヴィラE 005号室    20190601    20190615   20190615       1    2     20191130
5       666666  柿崎　喜六郎  19811030    1  1236666  AAA県BBB市CCC-123  サンプルヴィラF 006号室    20190601    20190608   20190608       1    2     20191129
6       777777  城島　香七子  19721103    2  1237777  AAA県BBB市CCC-123  サンプルヴィラG 007号室    20190601    20190608   20190608       2    1     20191030
7       888888  釘宮　亜八芽  19330303    2  1238888  AAA県BBB市CCC-123  サンプルヴィラH 008号室    20190501    20190507   20190507       1    1     20190401
8       999999  敬堂　勘九郎  19680229    1  1239999  AAA県BBB市CCC-123  サンプルヴィラI 009号室    20190601    20190615   20190615       2    0     20190331
9   1111000000  小柳　猿十郎  19200222    1  1240000  AAA県BBB市CCC-123  サンプルヴィラJ 010号室    20190501    20190507   20190507       2    1     20190228
10  1111111111  佐渡　十一郎  19430130    1  1241111  AAA県BBB市CCC-123  サンプルヴィラK 011号室    20190601    20190608   20190608       1    0     20190227
11  1111222222  宍戸　十二郎  19530301    1  1242222  AAA県BBB市CCC-123  サンプルヴィラL 012号室    20190501    20190507   20190507       2    1     20190131
```
index が振られて取り込まれました。
が、number の前ゼロが落ちてます。
こんなときは、read_csv のオプション指定で　dtype = 'object' を指定します。


```pandas_exam_01.py
import pandas as pd
df = pd.read_csv("infile.csv",dtype = 'object')
print(df)
df.to_csv('outfile2.csv')

```
表示出力結果

```
        number    name  birthymd sex    yubin             adr1            adr2 sinsei_ymd nintei_ymd happu_ymd syurui pet test_nowymd
0   0000111111  安藤　太一郎  19860602   1  1231111  AAA県BBB市CCC-123  サンプルヴィラA 001号室   20190501   20190507  20190507      1   0    20200229
1   0000222222  伊藤　炭二郎  19920505   1  1232222  AAA県BBB市CCC-123  サンプルヴィラB 002号室   20190501   20190514  20190514      2   1    20200228
2   0000333333  鵜飼　多三枝  19990909   2  1233333  AAA県BBB市CCC-123  サンプルヴィラC 003号室   20190501   20190514  20190514      1   2    20200131
3   0000444444  江崎　幸四郎  19870831   1  1234444  AAA県BBB市CCC-123  サンプルヴィラD 004号室   20190501   20190507  20190507      2   0    20191231
4   0000555555  岡本　小五郎  19520205   1  1235555  AAA県BBB市CCC-123  サンプルヴィラE 005号室   20190601   20190615  20190615      1   2    20191130
5   0000666666  柿崎　喜六郎  19811030   1  1236666  AAA県BBB市CCC-123  サンプルヴィラF 006号室   20190601   20190608  20190608      1   2    20191129
6   0000777777  城島　香七子  19721103   2  1237777  AAA県BBB市CCC-123  サンプルヴィラG 007号室   20190601   20190608  20190608      2   1    20191030
7   0000888888  釘宮　亜八芽  19330303   2  1238888  AAA県BBB市CCC-123  サンプルヴィラH 008号室   20190501   20190507  20190507      1   1    20190401
8   0000999999  敬堂　勘九郎  19680229   1  1239999  AAA県BBB市CCC-123  サンプルヴィラI 009号室   20190601   20190615  20190615      2   0    20190331
9   1111000000  小柳　猿十郎  19200222   1  1240000  AAA県BBB市CCC-123  サンプルヴィラJ 010号室   20190501   20190507  20190507      2   1    20190228
10  1111111111  佐渡　十一郎  19430130   1  1241111  AAA県BBB市CCC-123  サンプルヴィラK 011号室   20190601   20190608  20190608      1   0    20190227
11  1111222222  宍戸　十二郎  19530301   1  1242222  AAA県BBB市CCC-123  サンプルヴィラL 012号室   20190501   20190507  20190507      2   1    20190131
```

number の前ゼロ落ちなく取り込めました。

生年月日（birthymd）でソートしてみます。
ソートするには、　sort_values(['ソートしたい項目名'])　で指定します。

```pandas_exam_01.py
import pandas as pd
df = pd.read_csv("infile.csv",dtype = 'object')
df_sort = df.sort_values(['birthymd'])
print(df_sort)
df_sort.to_csv('outfile2.csv')
```

```
        number    name  birthymd sex    yubin             adr1            adr2 sinsei_ymd nintei_ymd happu_ymd syurui pet test_nowymd
9   1111000000  小柳　猿十郎  19200222   1  1240000  AAA県BBB市CCC-123  サンプルヴィラJ 010号室   20190501   20190507  20190507      2   1    20190228
7   0000888888  釘宮　亜八芽  19330303   2  1238888  AAA県BBB市CCC-123  サンプルヴィラH 008号室   20190501   20190507  20190507      1   1    20190401
10  1111111111  佐渡　十一郎  19430130   1  1241111  AAA県BBB市CCC-123  サンプルヴィラK 011号室   20190601   20190608  20190608      1   0    20190227
4   0000555555  岡本　小五郎  19520205   1  1235555  AAA県BBB市CCC-123  サンプルヴィラE 005号室   20190601   20190615  20190615      1   2    20191130
11  1111222222  宍戸　十二郎  19530301   1  1242222  AAA県BBB市CCC-123  サンプルヴィラL 012号室   20190501   20190507  20190507      2   1    20190131
8   0000999999  敬堂　勘九郎  19680229   1  1239999  AAA県BBB市CCC-123  サンプルヴィラI 009号室   20190601   20190615  20190615      2   0    20190331
6   0000777777  城島　香七子  19721103   2  1237777  AAA県BBB市CCC-123  サンプルヴィラG 007号室   20190601   20190608  20190608      2   1    20191030
5   0000666666  柿崎　喜六郎  19811030   1  1236666  AAA県BBB市CCC-123  サンプルヴィラF 006号室   20190601   20190608  20190608      1   2    20191129
0   0000111111  安藤　太一郎  19860602   1  1231111  AAA県BBB市CCC-123  サンプルヴィラA 001号室   20190501   20190507  20190507      1   0    20200229
3   0000444444  江崎　幸四郎  19870831   1  1234444  AAA県BBB市CCC-123  サンプルヴィラD 004号室   20190501   20190507  20190507      2   0    20191231
1   0000222222  伊藤　炭二郎  19920505   1  1232222  AAA県BBB市CCC-123  サンプルヴィラB 002号室   20190501   20190514  20190514      2   1    20200228
2   0000333333  鵜飼　多三枝  19990909   2  1233333  AAA県BBB市CCC-123  サンプルヴィラC 003号室   20190501   20190514  20190514      1   2    20200131
```

性別ごとに、氏名でソートしてみます。

```pandas_exam_01.py
import pandas as pd
df = pd.read_csv("infile.csv",dtype = 'object')
df_sort2 = df.sort_values(['sex','name'])
print(df_sort2)
df_sort2.to_csv('outfile2.csv')
```

```
        number    name  birthymd sex    yubin             adr1            adr2 sinsei_ymd nintei_ymd happu_ymd syurui pet test_nowymd
1   0000222222  伊藤　炭二郎  19920505   1  1232222  AAA県BBB市CCC-123  サンプルヴィラB 002号室   20190501   20190514  20190514      2   1    20200228
10  1111111111  佐渡　十一郎  19430130   1  1241111  AAA県BBB市CCC-123  サンプルヴィラK 011号室   20190601   20190608  20190608      1   0    20190227
0   0000111111  安藤　太一郎  19860602   1  1231111  AAA県BBB市CCC-123  サンプルヴィラA 001号室   20190501   20190507  20190507      1   0    20200229
11  1111222222  宍戸　十二郎  19530301   1  1242222  AAA県BBB市CCC-123  サンプルヴィラL 012号室   20190501   20190507  20190507      2   1    20190131
9   1111000000  小柳　猿十郎  19200222   1  1240000  AAA県BBB市CCC-123  サンプルヴィラJ 010号室   20190501   20190507  20190507      2   1    20190228
4   0000555555  岡本　小五郎  19520205   1  1235555  AAA県BBB市CCC-123  サンプルヴィラE 005号室   20190601   20190615  20190615      1   2    20191130
8   0000999999  敬堂　勘九郎  19680229   1  1239999  AAA県BBB市CCC-123  サンプルヴィラI 009号室   20190601   20190615  20190615      2   0    20190331
5   0000666666  柿崎　喜六郎  19811030   1  1236666  AAA県BBB市CCC-123  サンプルヴィラF 006号室   20190601   20190608  20190608      1   2    20191129
3   0000444444  江崎　幸四郎  19870831   1  1234444  AAA県BBB市CCC-123  サンプルヴィラD 004号室   20190501   20190507  20190507      2   0    20191231
6   0000777777  城島　香七子  19721103   2  1237777  AAA県BBB市CCC-123  サンプルヴィラG 007号室   20190601   20190608  20190608      2   1    20191030
7   0000888888  釘宮　亜八芽  19330303   2  1238888  AAA県BBB市CCC-123  サンプルヴィラH 008号室   20190501   20190507  20190507      1   1    20190401
2   0000333333  鵜飼　多三枝  19990909   2  1233333  AAA県BBB市CCC-123  サンプルヴィラC 003号室   20190501   20190514  20190514      1   2    20200131
```
漢字氏名がうまく並んでいません。
漢字項目でのソートはうまく並ばないみたいですね。
カナ氏名を追加した別のファイル infile2.csv を用いて、再度ソート処理してみます。

```infile2.csv
number,name,name_kana,birthymd,sex,yubin,adr1,adr2,sinsei_ymd,nintei_ymd,happu_ymd,syurui,pet,test_nowymd
0000111111,安藤　太一郎,アンドウ　タイチロウ,19860602,1,1231111,AAA県BBB市CCC-123,サンプルヴィラA 001号室,20190501,20190507,20190507,1,0,20200229
0000222222,伊藤　炭二郎,イトウ　タンジロウ,19920505,1,1232222,AAA県BBB市CCC-123,サンプルヴィラB 002号室,20190501,20190514,20190514,2,1,20200228
0000333333,鵜飼　多三枝,ウカイ　タミエ,19990909,2,1233333,AAA県BBB市CCC-123,サンプルヴィラC 003号室,20190501,20190514,20190514,1,2,20200131
0000444444,江崎　幸四郎,エザキ　コウシロウ,19870831,1,1234444,AAA県BBB市CCC-123,サンプルヴィラD 004号室,20190501,20190507,20190507,2,0,20191231
0000555555,岡本　小五郎,オカモト　コゴロウ,19520205,1,1235555,AAA県BBB市CCC-123,サンプルヴィラE 005号室,20190601,20190615,20190615,1,2,20191130
0000666666,柿崎　喜六郎,カキザキ　キロクロウ,19811030,1,1236666,AAA県BBB市CCC-123,サンプルヴィラF 006号室,20190601,20190608,20190608,1,2,20191129
0000777777,城島　香七子,キジマ　カナコ,19721103,2,1237777,AAA県BBB市CCC-123,サンプルヴィラG 007号室,20190601,20190608,20190608,2,1,20191030
0000888888,釘宮　亜八芽,クギミヤ　アヤメ,19330303,2,1238888,AAA県BBB市CCC-123,サンプルヴィラH 008号室,20190501,20190507,20190507,1,1,20190401
0000999999,敬堂　勘九郎,ケイドウ　カンクロウ,19680229,1,1239999,AAA県BBB市CCC-123,サンプルヴィラI 009号室,20190601,20190615,20190615,2,0,20190331
1111000000,小柳　猿十郎,コヤナギ　エンジュウロウ,19200222,1,1240000,AAA県BBB市CCC-123,サンプルヴィラJ 010号室,20190501,20190507,20190507,2,1,20190228
1111111111,佐渡　十一郎,サワタリ　ジュウイチロウ,19430130,1,1241111,AAA県BBB市CCC-123,サンプルヴィラK 011号室,20190601,20190608,20190608,1,0,20190227
1111222222,宍戸　十二郎,シシド　ジュウジロウ,19530301,1,1242222,AAA県BBB市CCC-123,サンプルヴィラL 012号室,20190501,20190507,20190507,2,1,20190131
```

```pandas_exam_01.py
import pandas as pd
df = pd.read_csv("infile2.csv",dtype = 'object')
df_sort2 = df.sort_values(['sex','name_kana'])
print(df_sort2)
df_sort2.to_csv('outfile2.csv')
```

```
        number    name     name_kana  birthymd sex    yubin             adr1            adr2 sinsei_ymd nintei_ymd happu_ymd syurui pet test_nowymd
0   0000111111  安藤　太一郎    アンドウ　タイチロウ  19860602   1  1231111  AAA県BBB市CCC-123  サンプルヴィラA 001号室   20190501   20190507  20190507      1   0    20200229
1   0000222222  伊藤　炭二郎     イトウ　タンジロウ  19920505   1  1232222  AAA県BBB市CCC-123  サンプルヴィラB 002号室   20190501   20190514  20190514      2   1    20200228
3   0000444444  江崎　幸四郎     エザキ　コウシロウ  19870831   1  1234444  AAA県BBB市CCC-123  サンプルヴィラD 004号室   20190501   20190507  20190507      2   0    20191231
4   0000555555  岡本　小五郎     オカモト　コゴロウ  19520205   1  1235555  AAA県BBB市CCC-123  サンプルヴィラE 005号室   20190601   20190615  20190615      1   2    20191130
5   0000666666  柿崎　喜六郎    カキザキ　キロクロウ  19811030   1  1236666  AAA県BBB市CCC-123  サンプルヴィラF 006号室   20190601   20190608  20190608      1   2    20191129
8   0000999999  敬堂　勘九郎    ケイドウ　カンクロウ  19680229   1  1239999  AAA県BBB市CCC-123  サンプルヴィラI 009号室   20190601   20190615  20190615      2   0    20190331
9   1111000000  小柳　猿十郎  コヤナギ　エンジュウロウ  19200222   1  1240000  AAA県BBB市CCC-123  サンプルヴィラJ 010号室   20190501   20190507  20190507      2   1    20190228
10  1111111111  佐渡　十一郎  サワタリ　ジュウイチロウ  19430130   1  1241111  AAA県BBB市CCC-123  サンプルヴィラK 011号室   20190601   20190608  20190608      1   0    20190227
11  1111222222  宍戸　十二郎    シシド　ジュウジロウ  19530301   1  1242222  AAA県BBB市CCC-123  サンプルヴィラL 012号室   20190501   20190507  20190507      2   1    20190131
2   0000333333  鵜飼　多三枝       ウカイ　タミエ  19990909   2  1233333  AAA県BBB市CCC-123  サンプルヴィラC 003号室   20190501   20190514  20190514      1   2    20200131
6   0000777777  城島　香七子       キジマ　カナコ  19721103   2  1237777  AAA県BBB市CCC-123  サンプルヴィラG 007号室   20190601   20190608  20190608      2   1    20191030
7   0000888888  釘宮　亜八芽      クギミヤ　アヤメ  19330303   2  1238888  AAA県BBB市CCC-123  サンプルヴィラH 008号室   20190501   20190507  20190507      1   1    20190401
```

性別（１：男、2:女）　＞　カナ氏名（アイウエオ順）　で並びました。