如何使用熊猫获取金额的基数?

时间:2021-05-11 03:36:50

标签: python pandas dataframe numpy numbers

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

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'])

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

enter image description here

2 个答案:

答案 0 :(得分:2)

没有正则表达式:

>>> 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

答案 1 :(得分:1)

添加regex=True

data['amount'].replace(['k','K','m','M'],['000','000','00000','00000'],regex=True)
Out[169]: 
0      150000
1      210000
2     4100000
3     6100000
4       81000
5    10100000
6      121000
Name: amount, dtype: object