我需要用python写一个把dataframe中的字符数字判断为值小于10变更为低楼层,值大于10小于20变更为中楼层,值大于20以上变更为高楼层,需要避开其他行非数字字符串
时间: 2023-06-18 18:02:21 浏览: 196
可以使用 Pandas 库的 apply 方法来实现这一功能。具体步骤如下:
1. 定义一个函数 `get_floor`,用于将数字转换成对应的楼层等级。该函数接受一个参数 `x`,表示需要转换的值。
```python
def get_floor(x):
try:
x = float(x)
if x < 10:
return '低楼层'
elif x < 20:
return '中楼层'
else:
return '高楼层'
except:
return x
```
2. 使用 apply 方法将该函数应用到 dataframe 的指定列上。假设需要转换的列名为 `floor`,则代码如下所示:
```python
df['floor'] = df['floor'].apply(get_floor)
```
完整代码如下:
```python
import pandas as pd
def get_floor(x):
try:
x = float(x)
if x < 10:
return '低楼层'
elif x < 20:
return '中楼层'
else:
return '高楼层'
except:
return x
df = pd.read_csv('data.csv')
df['floor'] = df['floor'].apply(get_floor)
```
其中,`data.csv` 是存储数据的 csv 文件名,需要根据实际情况进行修改。
阅读全文