Python中使用Seaborn绘制基于其他多列值筛选的数据集图表
多条件筛选绘图问题解决
你代码报错的核心原因是多条件筛选的语法不符合pandas规则:pandas做多个列的组合筛选时,需要将所有判断条件放在同一组索引括号内,每个条件单独用小括号包裹,条件间用&(表示同时满足所有条件)或者|(表示满足任意一个条件)连接。你之前的写法是对两个独立筛选后的数据集做按位与运算,逻辑和语法都不成立。
修正后完整代码
import seaborn as sns import matplotlib.pyplot as plt plt.figure(figsize = (15, 5)) plt.title("KDE Plot:", fontsize = 30, fontweight = 'bold') # 多条件筛选写法:所有条件放在同一组[]内,每个条件加小括号 ax = sns.kdeplot( df[(df.OpenedLCInd== 1) & (df.Age > 50)]['APlusCreditTier'].dropna(), label = 'Opened Letter Check', lw = 2 ) ax1 = sns.kdeplot( df[df.OpenedLCInd == 0]['APlusCreditTier'].dropna(), label = 'No Open Letter Check', lw = 2 ) # 原代码plt.legend = True是错误写法,改为调用legend函数 plt.legend() plt.tight_layout() plt.show()
扩展到3个条件的写法
如果需要新增第三个筛选条件,比如同时要求Income列取值大于10000,直接在条件块里新增即可:
# 三个条件同时满足的筛选示例 df[(df.OpenedLCInd== 1) & (df.Age > 50) & (df.Income > 10000)]['APlusCreditTier'].dropna()
内容的提问来源于stack exchange,提问作者user14316330
相关产品推荐
相关产品推荐

