0
0

【Python】pandasでCSV指定列の文字数を自動入力させる方法

Posted at

概要

CSVファイルからデータを読み込み、特定の列の文字数を計算&新しい列にその結果を追加&列の順序を並べ替える、という処理を行うコードを実装しました。

サンプルコード

例えば、国名、国のエリア、首都名の文字数をそれぞれ把握したい場合は以下のようなコードになります。

import pandas as pd
import os


csv_file_path = os.path.join("sample_directory", "sample.csv")
df = pd.read_csv(csv_file_path)

# 各列の文字数を計算し、新しい列に追加する
df['country_name_length'] = df['country_name'].str.len()
df['country_place_length'] = df['country_place'].str.len()
df['capital_name_length'] = df['capital_name'].str.len()

# 列を指定された順序に並べ替える
df = df.reindex(columns=['country_name', 'country_name_length', 'country_place', 'country_place_length', 'capital_name', 'capital_name_length'])

# 結果をCSVファイルに書き出す
df.to_csv('sample.csv', index=False)

上記により、指定した列の左列に文字数のはいった列が加わりました。

詳細

pandasのread_csv関数を使用してCSVファイルを読み込み、DataFrameという形式でデータを保持します(DataFrameとは、表形式のデータを表示したり操作したりするもの)。

DataFrameのstr.len()関数を使用して、'country_name', 'country_place', 'capital_name'という列の各値の文字数を計算。その結果を新しい列'country_name_length', 'country_place_length', 'capital_name_length'にそれぞれ追加します。

次に、DataFrameのreindex関数を使用して、列の順序を指定された順序に並べ替えます。
これにより、それぞれの文字列とその左列に文字数を表す列がくるようになります。

最後に、DataFrameのto_csv関数を使用して、結果を新しいCSVファイルに書き出します。
index=Falseとすることで、DataFrameのインデックスはCSVファイルに書き出されません(Trueにすると1や2といったインデックスも出力されます)。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0