python-3.x - 我如何在 python 中更改数据框中的列值
问题描述
如果年龄 <=8 替换小年龄 >8 和年龄 <12 替换中年龄 >12 替换大,我如何更改年龄列的值。
import pandas as pd
data = pd.read_csv('abalone' )
data.columns= [ 'Sex','Length','Diameter','Height','Whole_weight',
'Shucked_weight','Viscera_weight','shell_weight' ,'Rings']
data.head()
data["age"] = data["Rings"]+1.5
for row in data["age"]:
if row < 12:
data.loc[row,data["age"]]
elif:
data["age"][row]= "medium"
else:
data["age"][row]= "small"
解决方案
这可以通过首先替换值然后将它们映射到实际需要的值来完成:
data.loc[data['age'] <= 8, 'age'] = 1
data.loc[(data['age'] > 8) & (data['age'] < 12 ), 'age'] = 2
data.loc[data['age'] > 12, 'age'] = 3
data['age'] = data['age'].map({1: 'small', 2: 'medium', 3:'large'})
希望这有帮助
推荐阅读
- ascii - 附加了哪些 ASCII 代码?
- python - 每次在销售员中加载 url 时,如何从 /data_feeds/google_merchand.py/ 调用 update_feed()?
- php - Yii2 - 通过方法签名进行 DI 注入
- javascript - D3将时间放在X轴而不是数组值
- jquery - 如何通过 Jquery Ajax 将图像和一些数据作为参数传递给 Web API 控制器
- java - 如何使用java将特殊字符从一个表复制到mysql中的另一个表
- gnuplot - gnuplot:显示轴上某些点的值?
- php - 如何隐藏 laravel 5.7 http id
- java - 如何修复 StringBuffer 错误
- windows - 在 Windows 上以编程方式连接 BT 设备