我是Python的新手。有人帮助提取“ 3K”并通过将“ K”替换为“ 000”将其转换为“ 3000”。现在,我还有其他条件。我想从“超过4000”中提取数值,而我只想“ 4000”。如果有两个或两个以上的数字,例如“ 2050 – 3000”,我将采用最高的数字。
由于我也是Python数据框的新手,所以我无法提取数字并将其替换为新值的数据框。
仅接受数字值,不接受“ over4000”或“ 2000-3000”
答案 0 :(得分:0)
使用正则表达式。
例如:
import pandas as pd
import re
def process(val):
m = re.match(r"(\d+)k", val, flags=re.I)
if m:
return m.group(1) + "000"
return max(re.findall(r"\d+", val))
df = pd.read_csv(filename, encoding='utf8')
print(df["price"].apply(process).astype(int))
输出:
0 4000
1 3000
2 3500
3 4000
4 35000
Name: price, dtype: int32