gpt4 book ai didi

python - 如何在 Python 中将表示为字符的数字简称为数字

转载 作者:太空狗 更新时间:2023-10-29 20:53:20 26 4
gpt4 key购买 nike

我的数据框中有一列,其值类似于“3.456B”,它实际上代表 34.56 亿(和百万的类似表示法)。如何将这种字符串形式转换为正确的数字表示形式?

这显示了数据框:

import pandas as pd
data_csv = pd.read_csv('https://biz.yahoo.com/p/csv/422conameu.csv')
data_csv

这是一个示例值:

data_csv['Market Cap'][0]
type(data_csv['Market Cap'][0])

我试过这个:

data_csv.loc[data_csv['Market Cap'].str.contains('B'), 'Market Cap'] = data_csv['Market Cap'].str.replace('B', '').astype(float).fillna(0.0)
data_csv

但不幸的是,还有一些值的末尾带有“M”,表示百万。它返回错误如下:

ValueError: invalid literal for float(): 6.46M

如何在此列中用适当的值替换 B 和 M?有更好的方法吗?

最佳答案

我会使用字典来替换字符串,然后计算为 float 。

mapping = dict(K='E3', M='E6', B='E9')

df['Market Cap'] = pd.to_numeric(df['Market Cap'].replace(mapping, regex=True))

关于python - 如何在 Python 中将表示为字符的数字简称为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43121175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com