Pandas - 如何将对象转换为浮点值?

Pandas - how to convert objects to float values?

我正在处理 pandas 足球运动员的数据框。有一列包含每个玩家的价值。问题是此列的类型是对象,我想将其转换为 float64。我该怎么做?变量是 Release clause.

df_fifa['Release Clause']
0        €226.5M
1        €127.1M
2        €228.1M
3        €138.6M
4        €196.4M
          ...   
18202      €143K
18203      €113K
18204      €165K
18205      €143K
18206      €165K
Name: Release Clause, Length: 18207, dtype: object

我想把它转换成完整的数字。例如。 2 亿欧元至 200.000.000 欧元和 20 万欧元至 200.000 欧元。

我知道函数应该是

df_fifa['Release Clause'].astype(str).astype(int)

但首先我应该删除 €、M 和 k。我试过这个删除但它没有用

df_fifa['Release Clause'] = df_fifa['Release Clause'].replace("€","")

有人知道怎么做吗?

谢谢!

将您的符号 KM 转换为 '' * 1e3 * 1e6 并用 [= 评估您的表达式17=]:

mapping = {'€': '', 'K': ' * 1e3', 'M': ' * 1e6'}

df_fifa['Release Clause'] = \
    pd.eval(df_fifa['Release Clause'].replace(mapping, regex=True))
print(df_fifa)

# Output
       Release Clause
0         226500000.0
1         127100000.0
2         228100000.0
3         138600000.0
4         196400000.0
18202        143000.0
18203        113000.0
18204        165000.0
18205        143000.0
18206        165000.0