Py学习  »  Python

在Python的Pandas中,如何用我想要的东西替换特定列的子字符串?

LightOwlGG • 4 年前 • 676 次点击  

enter image description here

我该怎么做?“熊猫”有实现它的功能吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53400
 
676 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Jon Clements
Reply   •   1 楼
Jon Clements    4 年前

可能对你有用的是将潜在的“值”和任何潜在的“乘数后缀”分开,所以假设你的 df['Vehicle Value']

s = pd.Series(['25k', '1.25m', '100k', '500', '2.5k'])

我们的预期结果应该是 [25000, 1250000, 100000, 500, 2500] . 所以我们要:

vm = s.str.extract('(?P<value>.*?)(?P<multiplier>[km])?$')

      value multiplier
0    25          k
1  1.25          m
2   100          k
3   500        NaN
4   2.5          k

然后将乘数转换为一个数字(k=1000,m=1000000,如果没有指定一个,则将其保留为1),然后将该值与其相乘,例如:

df['Numeric Vehicle Value'] = pd.to_numeric(vm['value']) * vm['multiplier'].replace({'k': 1000, 'm': 1000000}).fillna(1)