これで、csvファイルを読んでいるときに変更することは通常不可能なので、新しいcsvファイルを作成して書き込む必要があります。私が持っている問題は、データの元の順序を保持することです。Python- csvファイルを変更する
次のように入力csvファイルを検索します:
C1 C2 C3
apple BANANA Mango
pear PineApple StRaWbeRRy
私は下ケースと出力にのように見える新しいCSVファイルのすべてのデータを有効にする:これまでのところ私ができる
C1 C2 C3
apple banana mango
pear pineapple strawberry
を入力csvファイルを反復処理し、すべての値を小文字に変換しますが、その形式でcsvファイルに書き戻す方法はわかりません。私が持っているコードは次のとおりです。
def clean (input)
aList = []
file = open(input, "r")
reader = csv.reader(file, delimiter = ',')
next(reader, None) # Skip the header but I want to preserve it in the output csv file
for row in reader:
for col in row:
aList.append(col.lower())
だから今、私は戻って、入力と同じ形式(行と列の数が同じ)のCSVファイルにそれを書き換えないか、すべて小文字のデータとのリストを持っています私がコードでスキップしたヘッダー行を含めて。
リストに行を保存する気にしないでくださいを使用して保存することができlower()
を使用することができます。入力と出力の両方のファイルを同時に開くだけですので、作成したそれぞれの変更された行を書き込むことができます。実際には、私はこのために 'csv'モジュールを使用しても気にしませんでした。ヘッダ行の大文字と小文字を保存する必要があるのは残念です。そうしないと、 'tr'プログラムでファイル全体を処理できます(UnixライクなOSを使っている場合)。 –
pandas: 'pd.read_csv(input).apply(str.lower).to_csv(input)' –
あなたのコードでは区切り文字として '、'が指定されていますが、サンプルデータは空白を使用しています。説明してください! –