在使用 Pandas 时,如何将 '€226.5M' 或 '€100.1K'(类型对象)等列中的所有值转换为 226.5 或 0.1001(浮点型)?



我有这个DataFrame,我知道我应该使用replace方法,但我没有使用哪种方法。我希望列中的所有值都是以百万欧元为单位的浮动值,所以我会删除"€"one_answers"M",如果一个值的值是"K"而不是"M"的话,则删除K并使数字小1000倍。谢谢

https://i.stack.imgur.com/lqbvU.png

创建一个自定义函数,将字符串值转换为数字:

mappings = {'M': 1, 'K': 0.001}
def to_numeric(sr):
df = sr.str.extract('([^€KM]+)([KM]?)')
return df[0].astype(float) * df[1].map(mappings).astype(float)
# Convert your columns
df['Value'] = to_numeric(df['Value'])
df['Wage'] = to_numeric(df['Wage'])
df['Release Clause'] = to_numeric(df['Release Clause'])

最新更新