やりたいことが二つあります:
- df[col1]の中に下記のような文字列が入っていたら、マイナスの数値(Float型)に変更したい。
例)
'- 0.001' → -0.001
'- 0.002' → -0.002
'- 0.003' → -0.003
- それ以外の文字列は、そのままFloat型に変換したい。
例)
'- 0.004' → 0.004
'- 0.005' → 0.005
'- 0.006' → 0.006
ご教授のほど、よろしくお願いいたします。
一応下記は、一つ一つの観測値を上記のように変換する関数です。
Python
1#正規表現のインポート 2import re 3 4def strToFloat(a): 5 6 #いろいろ設定 7 stringNum = a 8 positive = False 9 Float = 0.0 10 11 # '-'を含む場合 positive フラグを立てる 12 if re.search('-',stringNum) is None: 13 print('正の数!') 14 positive = True 15 else: 16 print('負の数!') 17 18 # 数字部分を抽出する 19 Floatabs = float(re.search('\d+.\d*',stringNum).group()) 20 print('絶対値は'+ str(Floatabs) ) 21 22 # 先ほどの positive フラグを参照し、必要ならば-1を掛ける 23 if positive == True: 24 Float = Floatabs 25 else: 26 Float = Floatabs * -1 27 return Float
この関数をデータフレームに適応してみましたが、エラーが出ました。
Python
1df[col1].apply(strToFloat(a))
回答2件
あなたの回答
tips
プレビュー