Python Dataframe:一个str有数字和字母,我想删除字母并将剩余的数字乘以1,000,000



我有一个包含如下值的数据框架:

|column a|
---------
|3.5M+   |
|100,000 |
|214,123 |
|1.25M+  |

我想把350万+这样的值转换成350万

我试过:

regex1 = r'.+M+'
for i in df.a:
b = re.match(regex1, i)
if b is not None:
i = int(np.double(b.string.removesuffix('M+'))*1000000)
else:
i = i.replace(',','')

如果我在整个过程中添加print语句,它看起来是正确的迭代。不幸的是,更改没有保存到数据框中。

>>> import pandas as pd
>>> df = pd.DataFrame({'column_a' : ['3.5M+', '100,000', '214,123', '1.25M+']})
>>> df
column_a
0   3.5M+
1   100,000
2   214,123
3   1.25M+
>>> df.column_a = df.column_a.str.replace("M+", '*1000000').str.replace(",", '').apply(eval)
>>> df
column_a
0   3500000.0
1   100000.0
2   214123.0
3   1250000.0

相关内容

  • 没有找到相关文章

最新更新