2
2つの正規表現関数を組み合わせてデータフレームをクリーンアップしたいと思います。私は次のデータフレームを持っていると仮定します。2つの正規表現 - ラムダ関数を1つに結合する
import pandas as pd
time = ["09:00", "10:00", "11:00", "12:00", "13:00", "33:00"]
result = ["+52", "+62", "+44 - 10a10", "+44", "+30 - $1200", "110"]
data = pd.DataFrame({'time' : time, 'result' : result})
data
のようになります。
result time
0 +52 09:00
1 +62 10:00
2 +44 - 10a10 11:00
3 +44 12:00
4 +30 - $1200 13:00
5 110 33:00
まず、+
記号を削除します。次に、-
記号とその後のすべてを削除したいと思います。私は2つの機能でそれを達成することができます。
import re
data['result'] = data['result'].map(lambda x: re.sub('\+', '', x))
data['result'] = data['result'].map(lambda x: re.sub('\-.*', '', x))
data
がこのようになりました。
すべての置換えを1つの手順で行う方法はありますか?
同じ機能をデータフレームの複数の列に適用する方法があります(列は必ずしも互いに隣り合っているわけではありません)。明らかに、これはうまくいかない: 'data [[col1、col2]]。apply(lambda x:re.sub( '\ + | - 。*'、 ''、x))'。 – sedeh
@sedeh申し訳ありません私はパンダについてはあまり考えていない。おそらくあなたはそれを別の質問として尋ねたいかもしれません。 – thefourtheye