質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

193閲覧

Python3系でで全CSV内データ列に番号を振りたい

amaturePy

総合スコア131

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/03/24 13:27

CSVに記載されているデータに対して以下の処理を加えたいです。
以下のことを実装したいのですが、力不足でうまく行きません。
アドバイスを頂けないでしょうか。。。
【実装したいこと】
・先頭行にヘッダーとしてlabelとtext_aを追加
・1から順に全ての行の先頭に番号を振りたいです。
・正規表現によるノイズの削除

【出力結果】

label text_a 0 親愛的〜***?

のように1行しか出力されません。

import codecs file0 = "/Users/apple/Downloads/task_data.csv" f0 = codecs.open(file0, "r", "utf-8") list0 = f0.readlines() f0.close() print(len(list0)) file1 = "/Users/apple/Downloads/task_data.csv" f1 = codecs.open(file1, "w", "utf-8") f1.write("label\ttext_a\n") num_line = 0 for i in range(1,len(list0)): list1 = list0[i].replace("\n", "") list1 = list1.replace("\r", "") list1 = list1.replace("\t", "") # if the original csv file has "tab", ERNIE may return error... list1 = list1.replace("\v", "") # vertical tab list1 = list1.replace('"', '') if list1 != "": f1.write("%s\t%s\n" % (num_line, list1)) num_line += 1 f1.close()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

if文の処理をforの中に入れてあげれば複数行の出力ができそうですね。
空文字をif文に指定するとFalseになるので省略しました。

Python

1for i in range(1,len(list0)): 2 list1 = list0[i].replace("\n", "") 3 list1 = list1.replace("\r", "") 4 list1 = list1.replace("\t", "") # if the original csv file has "tab", ERNIE may return error... 5 list1 = list1.replace("\v", "") # vertical tab 6 list1 = list1.replace('"', '') 7 if list1: 8 f1.write("%s\t%s\n" % (num_line, list1)) 9 num_line += 1 10f1.close()

投稿2020/03/24 14:01

編集2020/03/24 14:02
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amaturePy

2020/03/24 15:56

ありがとうございます! 頂いたコードで実装できました。 なるほど。for文の中に入れるのですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問