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("€","")
有人知道怎么做吗?
谢谢!
将您的符号 €
、K
和 M
转换为 ''
、 * 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
我正在处理 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("€","")
有人知道怎么做吗?
谢谢!
将您的符号 €
、K
和 M
转换为 ''
、 * 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