有没有一种方法可以使用大熊猫删除字母并将相应的零放在货币值上。我的专栏目前是这样的
Salary
$20M
$5.4M
$2.3K
答案 0 :(得分:1)
使用:
df.Salary=df.Salary.str.replace('$','')
df.Salary=(df.Salary.replace(r'[KM]+$', '', regex=True).astype(float) * \
df.Salary.str.extract(r'[\d\.]+([KM]+)', expand=False)
.replace(['K','M'], [10**3, 10**6]).astype(int))
print(df)
Salary
0 20000000.0
1 5400000.0
2 2300.0
答案 1 :(得分:0)
这是一种破解方式。假定第一个字符为$
,最后一个字符为M
或K
。
M = 1_000_000
K = 1_000
def salary_to_number(s):
return float(s[1:-1]) * globals().get(s[-1])
输出:
>>>salary_to_number('$20M')
20000000
>>> salary_to_number('$5.4K')
5400.0
然后您可以使用df.apply