我的数据框中有一个列,其值为'3.456B',实际上代表了3.456亿(和Million相似的表示法).如何将此字符串形式转换为正确的数字表示?
这显示了数据框:
import pandas as pd
data_csv = pd.read_csv('https://biz.yahoo.com/p/csv/422conameu.csv')
data_csv
Run Code Online (Sandbox Code Playgroud)
这是一个示例值:
data_csv['Market Cap'][0]
type(data_csv['Market Cap'][0])
Run Code Online (Sandbox Code Playgroud)
我试过这个:
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
Run Code Online (Sandbox Code Playgroud)
但不幸的是,最后还有值为'M'的值,表示百万.它返回错误如下:
ValueError: invalid literal for float(): 6.46M
Run Code Online (Sandbox Code Playgroud)
如何在此列中用适当的值替换B和M?有没有更好的方法呢?