如何在Python中将表示为字符的数字转换为数字
发布于 2021-01-29 14:57:36
我的数据框中有一列,其值类似于‘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?有更好的方法吗?
关注者
0
被浏览
106
1 个回答