【Python】CSVファイルを行ごとに読み込み、列を追加する方法
やりたいこと
怪人名 | 戦闘力 |
---|---|
アーマードゴリラ | 93 |
育ちすぎたポチ | 44 |
ムカデ長老 | 73 |
モスキート娘 | 58 |
深海王 | 85 |
ホームレス帝 | 60 |
ガロウ | 99 |
エビル天然水 | 60 |
上のようなCSVファイルにおいて「2列目の値に応じて値が変わる列」を追加したい。
例えば戦闘力が80以上の怪人なら竜
という値を、60以上なら虎
を3列目に追加する。
解決法
1. pandasをインストール
今回CSVファイルを編集するために必要なライブラリ「pandas」をインストール。
また、書き出し場所の指定をする際にダイアログボックスを使いたいので、「tkinter」もimportしておきます。
2. CSVファイルを読み込んで見出しを用意
read_csv
メソッドでCSVファイルを読み込む- 列を追加する際に何かと不便なので
names=
のところで名前を指定して見出しを設定 - 列がないと値も入れられないので事前に列を用意しておく
3. 列に値を格納
itterrows
メソッドで一行ごとにファイルを読み込み、戦闘力に応じた値を格納する。
4. ダイアログボックスからファイルを書き出す
あとはダイアログボックスを用いてファイルの書き出し先を選択させ、to_csv
メソッドでcsvファイルを書き出せばOK。
試しに実行してみるとダイアログボックスが表示され、書き出しの指定ができるように。
それからファイルは無事書き出され、中身を見てみると目当ての3列目が追加されていた 🎉