我有一个包含如下值的数据框架:
|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