🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
pandas

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

Q&A

解決済

1回答

8050閲覧

PandasでDataFrameの値の一部を置換したい

barobaro

総合スコア1286

pandas

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

0グッド

0クリップ

投稿2019/12/10 12:38

DataFrame全体の値の一部を置換できない

前提・実現したいこと

  1. DataFrame全体の値の一部を置換したい(サンプルの〇を除去して数字のみにしたい)場合どうすればいいのでしょうか?
  2. DataFrame.replace()は値が同じ場合のみ置換、一部ヒットは置換できない?
  3. DataFrame.replace(regex = True)はどうして置換できるのか?正規表現で一部ヒットするため置換できる?

よろしくお願いします。

該当のソースコード

python

1import pandas as pd 2 3data = [[f"○{y}{x}" for x in range(10)] for y in range(10)] 4 5df = pd.DataFrame(data) 6 7df1 = df.copy() 8 9# 置換できない 10df1.replace("○", "") 11 12# 置換できる 13df1.replace("○", "", regex = True)

試したこと

Seriesなら.str.replaceで置換できる

python

1df1[0].str.replace("○", "")

DataFrameでも値が置換する値と同じなら置換できる

python

1import pandas as pd 2 3data = [["○" for x in range(10)] for y in range(10)] 4 5df = pd.DataFrame(data) 6 7df1 = df.copy() 8 9df1.replace("○", "")

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

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

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

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

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

guest

回答1

0

ベストアンサー

いま一つどこが解らないのか不明なのですが、

1.DataFrame全体の値の一部を置換したい(サンプルの〇を除去して数字のみにしたい)場合どうすればいいのでしょうか?

質問のコードにあるように regex=True をパラメータに渡すとよいのではないでしょうか

2.DataFrame.replace()は値が同じ場合のみ置換、一部ヒットは置換できない?

そのとおりです。

regex=False の場合は第一引数と完全一致する文字列が置き換わります。

3.DataFrame.replace(regex=True)はどうして置換できるのか?正規表現で一部ヒットするため置換できる?

そのとおりです。regex=True の場合は内部的に re.sub() が実行されますので部分一致している部分が置き換わります。

投稿2019/12/10 23:30

magichan

総合スコア15898

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

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

barobaro

2019/12/11 00:48

magichanさんどうもありがとうございます。 どうも風邪のようで昨日はぜんぜん頭に入りませんでした。 dataframeだとseries.str.replace()と同じ結果にならなくてパニックになってたようです。 おかげで整理できましたどうもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問