繁体   English   中英

如何计算人类可读货币格式的价格?

[英]How to sum price of human readable currency format?

我从网站检索数据,价格列为 809.989K、1.792M,我想将价格列中的数字合并到一个新列中。

我的 dataframe

import pandas as pd

data = {
  "price": ["809.989K", "1.792M"]
}

df = pd.DataFrame(data)
df

所需 output

在此处输入图像描述

使用sum将值转换为浮点数,最后通过si_format库添加前缀:

#pip install si_format
from si_prefix import si_format

#https://stackoverflow.com/a/39684629/2901002
out =  ((df.price.replace(r'[KM]+$', '', regex=True).astype(float) * 
              df.price.str.extract(r'[\d\.]+([KM]+)', expand=False)
                .fillna(1)
                .replace(['K','M'], [10**3, 10**6]).astype(int)).sum())

df['sum'] = si_format(out, precision=1).upper()
print (df)
      price    sum
0  809.989K  2.6 M
1    1.792M  2.6 M

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM