末尾のカンマを取り除く
列数が異なるCSVをPandasで取得。その後、末尾のカンマを取り除く正規表現
- 列数が異なるCSVをpandasで呼び込む際、列名を作って強制的に読み込むと
- 最大列数に不足する行にはカンマが付与される
- pandas側でfillna()の処理をしても、出力するとカンマは変わらず付与されたままの状態
- そこで出力後のcsvで以下の文字列処理を行う
import re
# 末尾に連なる複数のカンマ
pattern = ',*$'
str = 'AAA,BBB,CCCC,,,,,,,,'
re.sub(pattern, '', str)
# >> 'AAA,BBB,CCCC'末尾のカンマを取り除いたCSVを新規作成
import pathlib
p = pathlib.Path('before.csv')
pattern = ',*$'
after_csv = []
with open(p, 'r') as f:
for l in f:
l_strip_comma = re.sub(pattern, '', l)
after_csv.append(l_strip_comma)
with open(p.parent / 'after.csv', 'w') as f:
f.writelines(after_csv)