如何在Seaborn箱线图中使用正年龄数据子集?解决类型错误
解决Seaborn箱线图的TypeError问题
嘿,这个错误我之前也碰到过,问题出在你筛选数据的语法上!你写的train['age' > -1]其实是在把字符串'age'和整数-1做比较,Python当然会报错——字符串和整数没法直接用>比较呀。
正确的数据筛选方式
你需要先定位到train数据集里的age列,再对列中的每个值做大于-1的判断,用这个布尔结果来筛选符合条件的行:
train[train['age'] > -1]
修正后的完整代码
把你的代码改成下面这样就可以正常运行了:
import seaborn as sns import matplotlib.pyplot as plt # 别忘了导入matplotlib的pyplot模块! fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(15, 8)) # 这里修正了数据筛选的语法 sns.boxplot(x='country_destination', y='age', data=train[train['age'] > -1], palette="muted", ax=ax) ax.set_ylim([10, 60])
额外小提示
如果之后还是遇到数据相关的问题,可以先检查下age列的数据类型是不是数值型:
print(train['age'].dtypes)
如果显示是object类型,说明存在非数值的脏数据,可以先转成数值型(无效值会被转为NaN):
import pandas as pd train['age'] = pd.to_numeric(train['age'], errors='coerce')
内容的提问来源于stack exchange,提问作者N Dubya
相关产品推荐
相关产品推荐

