2017-11-02 5 views
0

私はPythonをやめてスタックオーバーフローをやめました。このプラットフォームは、私がコードワイズを実行したいものを手に入れるために役立ちます。私はパンダのデータフレームに取り組んでいて、/ or - or *が続く場合にのみ、文字列の一部を置き換えたいと考えています。サンプル文字列は-MAA-BOM/MADRASです。
MAA to MADRAS, BOM to BOMBAY, MAD to MADRIDを交換したいと思います。希望の出力はMADRAS-BOMBAY/MADRASのようになります。私はMAA and BOM to be replaced while MAD in MADRAS should remain intactだけ欲しいです。私は.replace()辞書を使っていましたが、これは私に望ましい出力を与えていません。
何か助けていただければ幸いです。
ありがとうございます。pandasのpythonで/、 - 、*が続く場合は、文字列の一部を置き換えます。

+0

私は個人的に試してみて、このための正規表現を構築します。私は –

答えて

0

マッピングの辞書構築します

m = {'MAA' : 'MADRAS', 'BOM': 'BOMBAY', 'MAD' : 'MADRID'} 

を今、あなたのコラムにstr.replaceを呼び出す:

df['Col'] = df['Col'].str.replace(r'.*?(?=[/*-])', 
         lambda x: m.get(x.group(), None)) 
+0

をテストするためにregex101.comを推奨します。こんにちは@COLDSPEED、応答に感謝します。あなたのコードを試しましたが、エラーが発生しています:
'replは文字列でなければなりません。
私が使用しているコードは次のとおりです:

私は8k +キーのペアを持っています。 – anandpran

+0

@anandpranあなたのpandasのバージョンはdate_の_outです。 'pip install --upgrade pandas'を使って最新の-0.20にアップグレードしてください。古いバージョンではコールバックはサポートされていません。 –

+0

@anandpranまた、 '.group'を追加しなければならないことを見てください。自分の編集を見て、それを組み込んでください。ありがとう。 –

関連する問題