python - 用 $ 将货币转换为 Python pandas 中的数字

标签 python python-2.7 pandas

我在 Pandas 数据框中有以下数据:

    state        1st        2nd             3rd
0   California  $11,593,820 $109,264,246    $8,496,273
1   New York    $10,861,680 $45,336,041     $6,317,300
2   Florida     $7,942,848  $69,369,589     $4,697,244
3   Texas       $7,536,817  $61,830,712     $5,736,941

我想用三列(1st、2nd、3rd)执行一些简单的分析(例如 sum、groupby),但是这三列的数据类型是对象(或字符串)。

所以我使用以下代码进行数据转换:

data = data.convert_objects(convert_numeric=True)

但是,转换不起作用,也许是因为美元符号。有什么建议吗?

最佳答案

@EdChum 的回答很聪明,效果很好。但既然烤蛋糕的方法不止一种……为什么不使用正则表达式呢?例如:

df[df.columns[1:]] = df[df.columns[1:]].replace('[\$,]', '', regex=True).astype(float)

对我来说,这更具可读性。

关于python - 用 $ 将货币转换为 Python pandas 中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32464280/

相关文章:

python - 用于测试字符串的可能值的有限调色板的正则表达式?

python - 通过循环函数中的每一行来修改数据框

python - 绘制 keras 自定义模型时,“ListWrapper”对象没有属性 'name'

python - pandas:如何正确堆叠我的数据?

python - 尝试理解 .strip

python - 如何从一组相似图像中删除点状水印?

python - 如何从 Google Colab 笔记本中的 gmplot draw 命令查看 html 输出文件?

python - scipy linprog 中的二元约束

python - Pandas 读取 DataFrame

python - 计算每行的 "best of 4"平均值