尝试从DataFrame中切出行,但无法通过特定列工作

时间:2018-10-18 16:10:29

标签: python pandas matplotlib visualization

如果AreaPopulation的值太高,我试图切掉数据集的某些行,以便我可以基于数据创建散点图。当我通过Population进行剪切时,效果很好,但对Area却无效。

flagsCut = flags.loc[flags['Area'] < 6000]
flagsCut = flags.loc[flags['Population'] < 250]
print(flagsCut.shape)
plt.scatter(flagsCut['Area'].tolist(), flagsCut['Population'].tolist(), c='blue', alpha=0.5)
plt.xlabel('Area')
plt.ylabel('Population')
plt.show()

导致 scatter(不能嵌入抱歉)

如您所见,在x轴上仍然有4个数据点超过6000,但在y轴上没有250以上。

关于这种情况为什么发生以及如何解决的任何想法?

2 个答案:

答案 0 :(得分:2)

您正在将princess::skin-tone-5上的第一个约束应用于Area数据帧,然后又将flags上的第二个约束应用于Population,而不是已经约束的{ {1}}数据框。

您需要将第二个约束应用于已经受约束的数据框,如下所示:

flags

或更简洁:

flagsCut

答案 1 :(得分:1)

以下内容应一步一步筛选出面积和人口。

flagsCut = flags.loc[(flags['Area'] < 6000) | (flags['Population'] < 250)]