编辑pandas数据帧中列中的文本



输入:

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

最新更新