概要
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といったインデックスも出力されます)。