输入:
df['Price'].head()
输出:
col
---------------
0 35.41 Lakhs
1 47.59 Crore
2 50.50 Lakhs
3 38.44 Lakhs
Name: Price, dtype: object
我需要输出:
col
----------
0 35.41
1 0.4759
2 50.50
3 38.44
即,删除"Lakhs"one_answers"Crore"标签,并将列中的lakh数字转换为Crore。
实现这一点的代码是什么。
提前感谢
您可以使用带有浮点数正则表达式的.str.extract()
提取数字,如下所示:
df['Price'] = df['Price'].str.extract(r'(d+(?:.d+)?)')
此正则表达式(d+(?:.d+)?)
适用于带小数点和不带小数点的数字(整数和浮点数(。
结果:
print(df)
Price
0 35.41
1 47.59
2 50.50
3 38.44
>>> df.replace({'Price': {'Lakhs': '* 1', 'Crore': '/ 100'}},
regex=True)['Price'].apply(eval)
0 35.41
1 47.59
2 50.50
3 38.44
Name: Price, dtype: float64