Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法将字符串转换为数字_Python_Regex - Fatal编程技术网

Python 无法将字符串转换为数字

Python 无法将字符串转换为数字,python,regex,Python,Regex,我有以下输入数据帧。所有类型都是字符串。我想将它们转换为浮动。字符种类繁多,但理想情况下我只保留小数分隔符和数字。什么是删除其他所有内容的最佳方法? 我试过: 有没有办法替换除数字和逗号以外的所有字符 JPY JPY JPY JPY JPY JPY JPY JPY JPY JPY .

我有以下输入数据帧。所有类型都是字符串。我想将它们转换为浮动。字符种类繁多,但理想情况下我只保留小数分隔符和数字。什么是删除其他所有内容的最佳方法? 我试过:

有没有办法替换除数字和逗号以外的所有字符

                          JPY             JPY           JPY       JPY             JPY             JPY       JPY           JPY          JPY     JPY  ... JPY JPY JPY JPY JPY JPY JPY JPY JPY JPY
Update time                                                                                                                                              ...                                        
2018/8/13 10:15     $34,424,234.98  this is a str   ¥375,567,698  ¥304,734  ¥3,848,230,263    ¥101,677,219         0   ¥14,377,274  ¥47,719,464  ¥1,833  ...   0   0   0   0   0   0   0   0   0   0
2018/8/14 10:30     $34,424,234.98  ¥4,079,039,244  ¥375,567,698  ¥304,734  ¥3,131,351,753    ¥101,677,219         0   ¥14,377,274  ¥47,719,464  ¥1,833  ...   0   0   0   0   0   0   0   0   0   0
2018/8/15 10:30     $34,424,234.98  ¥4,644,436,742  ¥375,567,698  ¥304,734  ¥3,018,288,133    ¥101,677,219         0   ¥14,376,734  ¥48,551,464  ¥1,833  ...   0   0   0   0   0   0   0   0   0   0
编辑:

这是一个解决方案

corp = corp.replace(r'[a-zA-Z]|¥|,', '', regex=True)
你可以用

corp = corp.replace(r'[^\d.]+', '', regex=True).apply(pd.to_numeric)
这样,您将删除除数字和点以外的所有字符。看

详细信息

  • [^
    -否定字符类开始
    • \d
      -数字
    • -点
  • ]+
    -否定字符类结束,一次或多次出现
corp = corp.replace(r'[^\d.]+', '', regex=True).apply(pd.to_numeric)