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

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

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

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

1524閲覧

Python の Pandas で 特定の文字を削除したい。

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2019/05/17 20:24

前提・実現したいこと

Windows に Python 3.7.3 と Pandas をインストールしている環境で、
以下の CSV を読み込み、HTML で出力する際、*でくくった部分も含め削除したいです。

発生している問題・エラーメッセージ

■CSV[test.csv]の内容

項目,内容 テスト,"************************************************************* この部分のメッセージを*もまとめて削除したいです。 削除した後に空白ができる場合は空白も削除したいです。 ************************************************************* 本日は晴天なり。 明日は雨天なり。"

■現在の状況
以下スクリプトを実行した結果のファイル(test.html)を、chromeブラウザ確認すると、内容の部分が以下のようになります。「*」が消えず、日本語部分だけ消えています。

●現状

************************************************************* ************************************************************* 本日は晴天なり。 明日は雨天なり。

●理想

本日は晴天なり。 明日は雨天なり。

該当のソースコード

python

1import pandas as pd 2import csv 3pd.set_option('display.max_rows', 12000) 4pd.set_option('display.width', 12000) 5pd.set_option("display.max_colwidth", 12000) 6 7df = pd.read_csv(r'C:\Python\test.csv', encoding='cp932', names=["項目", "内容"], usecols=[0, 1], skiprows=[0], skipfooter=0, engine='python') 8df= df.replace({'\n': '<br>'}, regex=True) 9df= df.replace({'\r': ''}, regex=True) 10df= df.replace({'*************************************************************': ''}, regex=False) 11df= df.replace({'この部分のメッセージを*もまとめて削除したいです。': ''}, regex=True) 12df= df.replace({'削除した後に空白ができる場合は空白も削除したいです。 13': ''}, regex=True) 14df= df.replace({'*************************************************************': ''}, regex=False) 15df.to_html(r'C:\Python\test.html',escape=False)

恐れ入りますが、よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下のような正規表現で削除できます。

Python

1import pandas as pd 2 3df = pd.read_csv(r'test.csv', encoding='cp932', names=["項目", "内容"], usecols=[0, 1], skiprows=[0], skipfooter=0, engine='python') 4 5df= df.replace({'\n': '<br>'}, regex=True) 6df= df.replace({'\r': ''}, regex=True) 7df= df.replace({r'*.**': ''}, regex=True) # *~* 8#df.to_html(r'test.html',escape=False) 9print(df) 10""" 11 項目 内容 120 テスト <br>本日は晴天なり。<br>明日は雨天なり。 13"""

投稿2019/05/17 20:51

can110

総合スコア38266

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

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

退会済みユーザー

退会済みユーザー

2019/05/18 00:46

ご回答ありがとうございます。 無事該当部分の削除ができました! これにより発生した「改行<br>」については、削除したいのですが可能でしょうか。 以下の例だと、「本日は~」の左側にある<br>のみ削除したいです。 項目 内容 0 テスト <br>本日は晴天なり。<br>明日は雨天なり。 恐れ入りますがよろしくお願いいたします。
can110

2019/05/18 00:51

正規表現の部分を r'*.**' → r'*.**<br>' にしてやればよいです。
退会済みユーザー

退会済みユーザー

2019/05/18 00:58

できました! 正規表現について勉強いたします。 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問