csv の2列目のコラムの長さ10以上を削除して、長さを10以下にする方法
プログラム
csv_modify.py
#! /usr/bin/python
#
# csv_modify.py
#
# Jul/13/2024
# ------------------------------------------------------------------
import pandas as pd
import csv
import sys
# ------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
csv_file_in = sys.argv[1]
csv_file_out = sys.argv[2]
ll_limit = 10
df = pd.read_csv(csv_file_in,dtype=str)
print(df.shape)
column_index = 1
max_length = df.iloc[:,column_index].apply(len).max()
print("max_length =",max_length)
#
df.iloc[:, column_index] = df.iloc[:, column_index].str.slice(stop=ll_limit)
df.to_csv(csv_file_out,index=False,quoting=csv.QUOTE_ALL)
#
sys.stderr.write("*** 終了 ***\n")
# ------------------------------------------------------------------
実行
スクリプト
./csv_modify.py in01.csv out01.csv
入力 csv ファイル
in01.csv
"市区町村コード","宛名番号","抑止事由"
"131016","a1234","01"
"131016","a12345678912","01"
"131016","a123456789123","01"
"131016","a12345678912345","01"
"131016","a12345678912567","01"
"131016","a123456789","01"
"131016","a123","01"
"131016","a12345","01"
出力 csv ファイル
out01.csv
"市区町村コード","宛名番号","抑止事由"
"131016","a1234","01"
"131016","a123456789","01"
"131016","a123456789","01"
"131016","a123456789","01"
"131016","a123456789","01"
"131016","a123456789","01"
"131016","a123","01"
"131016","a12345","01"