ホームページ > バックエンド開発 > Python チュートリアル > Pandas データフレームの文字列列内の文字を完全一致せずに置換するにはどうすればよいですか?

Pandas データフレームの文字列列内の文字を完全一致せずに置換するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-28 14:30:02
オリジナル
511 人が閲覧しました

How to Replace Characters in a String Column of a Pandas Dataframe without Exact Matches?

Pandas データフレームの文字列列のテキストの複製

データ操作タスクでは、多くの場合、文字列列内の特定の文字を置換することが必要になります。 「(2,30)」のような文字列値を含む列を持つデータフレームを考えてみましょう。ここで、カンマ (「,」) をダッシュ​​ (「-」) に置き換えます。

これに対処するには、次のようにします。 inplace=True を指定して Pandas の replace メソッドを使用して列を直接変更しようとした可能性があります。ただし、このアプローチが機能しない場合は、コードを評価し、replace の制限を理解する価値があります。

Pandas のドキュメントでは、replace が置換を実行するには、指定された文字列と完全に一致する必要があると指定されています。あなたの場合、列の値は、置換しようとしている文字列と正確には一致しません。

代わりに、ベクトル化された str メソッドを活用して、この変換を効果的に実行できます。

<code class="python">df['range'] = df['range'].str.replace(',','-')</code>
ログイン後にコピー

このアプローチでは、str メソッドを利用して列内の各文字列を文字列オブジェクトとして扱い、さまざまな文字列操作操作を実行できるようにします。 replace メソッドを連鎖させることで、カンマをダッシュ​​に置き換えることを指定できます。

説明のために、次の例を考えてみましょう。

<code class="python">df = pd.DataFrame({'range':['(2,30)', '(50,290)', '(400,1000)']})

df['range'] = df['range'].str.replace(',','-')

print(df)</code>
ログイン後にコピー

出力:

      range
0    (2-30)
1  (50-290)
2 (400-1000)
ログイン後にコピー

ご覧のとおり、元の列のカンマがダッシュに置き換えられました。

以上がPandas データフレームの文字列列内の文字を完全一致せずに置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート