繁体   English   中英

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

[英]How can I replace a sub-string of a specific column by something I want in Pandas of Python?

在此处输入图像描述

我想将 Vehicle Value 列中的所有 'k' 替换为 000,这意味着 Vehicle Value 中的数据应表示为 25000,100000,10000.....

我该怎么做? 'Pandas' 是否有 function 来实现它?

可能对您有用的是分离潜在的“价值”和任何潜在的“乘数后缀”,所以假设您的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=1,000, m=1,000,000,如果没有指定 - 只需将其保持为 1),然后将该值乘以它,例如:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM