我有一个如下所示的熊猫数据框
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。如果我替换,我可能会在零的数量上犯错
答案 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