用pandas 读取一列 例如7.5w-10w 转为 75000 100000两列 举例
时间: 2024-03-01 20:51:41 浏览: 129
假设你的数据已经存储在一个名为 `df` 的 pandas DataFrame 中,其中包含一列名为 `salary` 的工资数据,数据格式为7.5w-10w,你可以使用 pandas 的 `str` 方法、`split` 方法和 `apply` 函数来将 `salary` 列中的工资数据转化为两列分别表示7.5w和10w的数字。
下面是一个示例代码:
```python
import pandas as pd
def convert_salary_range(s):
s = s.replace('w', '') # 去掉字符串中的 'w' 字符
salary_range = s.split('-') # 将字符串按照 '-' 分割为两个部分
if len(salary_range) == 2: # 如果分割后得到两个部分
return pd.Series({'min_salary': float(salary_range[0])*10000, 'max_salary': float(salary_range[1])*10000})
else:
return pd.Series({'min_salary': None, 'max_salary': None})
df[['min_salary', 'max_salary']] = df['salary'].apply(convert_salary_range)
```
上述代码中,`convert_salary_range` 函数将工资数据转化为两个数字,即最低工资和最高工资。首先去掉字符串中的 `w` 字符,然后按照 `-` 分割为两个部分。如果分割后得到两个部分,则将两部分转化为数字并存储在一个 pandas Series 中,然后返回该 Series。如果分割后得到不到两个部分,则返回两个 `None` 值。最后将转化后的两个数字存储在名为 `min_salary` 和 `max_salary` 的新列中。
需要注意的是,上述代码中假设工资数据中的单位为 `w`,如果实际单位不同,需要根据实际情况进行修改。
阅读全文