无法将熊猫字符串转换为数字

时间:2020-08-30 02:46:25

标签: python regex

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

corp = corp.replace(r'\$', '', regex=True).apply(pd.to_numeric)

是否可以替换all expect numeric AND comma

                          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)

1 个答案:

答案 0 :(得分:0)

您可以使用

corp = corp.replace(r'[^\d.]+', '', regex=True).apply(pd.to_numeric)

这样,您将除去数字和点以外的所有字符。参见regex demo

详细信息

  • [^-否定的字符类开始
    • \d-数字
    • .-点
  • ]+-否定的字符类结尾,一次或多次出现