首页 > 解决方案 > 如何使用熊猫获得金额的基数?

问题描述

我有一个如下所示的熊猫数据框

data = pd.DataFrame({'amount':['150k','210k','41M','61M','81K','101m','121k']})

我想获取数据框中金额的基数

例如:150k 应该是 150000,210k 应该是 210000 等等

我尝试了以下但它不起作用并且不够准确

data['amount'] = data['amount'].replace(['k',,'K','m','M'],['000','000','00000','00000'])

我希望我的输出如下所示。我想拥有稳定高效的方法。如果我替换,我可能会在零个数上犯错

在此处输入图像描述

标签: pythonpandasdataframenumpynumbers

解决方案


没有正则表达式:

>>> data["amount"].str[:-1].astype(int) \
      * data["amount"].str[-1].str.upper().map({"K": 10**3, "M": 10**6)

0       150000
1       210000
2     41000000
3     61000000
4        81000
5    101000000
6       121000
Name: amount, dtype: int64

推荐阅读