[解決済み】Pythonでcsvファイルを編集するときにヘッダをスキップする。
2022-02-23 16:18:54
質問事項
Pythonを使ってcsvを編集するために、以下のコードを参照しています。コードの中で呼び出される関数は、コードの上部を形成しています。
問題:下記のコードで2行目からcsvの編集を始めたいのですが、ヘッダーを含む1行目は除外して欲しいのです。現在、1行目のみに関数を適用しており、私のヘッダー行は変更されています。
in_file = open("tmob_notcleaned.csv", "rb")
reader = csv.reader(in_file)
out_file = open("tmob_cleaned.csv", "wb")
writer = csv.writer(out_file)
row = 1
for row in reader:
row[13] = handle_color(row[10])[1].replace(" - ","").strip()
row[10] = handle_color(row[10])[0].replace("-","").replace("(","").replace(")","").strip()
row[14] = handle_gb(row[10])[1].replace("-","").replace(" ","").replace("GB","").strip()
row[10] = handle_gb(row[10])[0].strip()
row[9] = handle_oem(row[10])[1].replace("Blackberry","RIM").replace("TMobile","T-Mobile").strip()
row[15] = handle_addon(row[10])[1].strip()
row[10] = handle_addon(row[10])[0].replace(" by","").replace("FREE","").strip()
writer.writerow(row)
in_file.close()
out_file.close()
を初期化することで解決しようとしました。
row
変数を
1
が、うまくいきませんでした。
この問題を解決するために私を助けてください。
解決方法は?
あなたの
reader
変数は反復可能で、それをループすることで行を取得します。
ループの1つ前の項目をスキップさせるには、単に
next(reader, None)
で、戻り値は無視する。
また、コードを少し簡略化することもできます。開いているファイルをコンテキスト・マネージャとして使用し、自動的に閉じるようにすることができます。
with open("tmob_notcleaned.csv", "rb") as infile, open("tmob_cleaned.csv", "wb") as outfile:
reader = csv.reader(infile)
next(reader, None) # skip the headers
writer = csv.writer(outfile)
for row in reader:
# process each row
writer.writerow(row)
# no need to close, the files are closed automatically when you get to this point.
ヘッダを未処理のまま出力ファイルに書きたい場合は、これも簡単です。
next()
から
writer.writerow()
:
headers = next(reader, None) # returns the headers or `None` if the input is empty
if headers:
writer.writerow(headers)
関連
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] Python 3 の "python -m SimpleHTTPServer" に相当するものは何ですか?
-
[解決済み] PostgreSQLからのPL/pgSQL出力をCSVファイルに保存する
-
[解決済み] pandasのDataFrameをCSVファイルに書き出す
-
[解決済み] PandasとPythonでCSVファイルを読み込むとUnicodeDecodeErrorが発生する。
-
[解決済み】Pythonで作成したCSVファイルの行間に空白行がある。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない