1

我正在 pandas 中开始一个新的练习模块,我们在其中处理数据的索引和过滤。我遇到了一种在课程中没有解释的方法链接格式,我想知道是否有人可以帮助我理解这一点。该数据集来自财富 500 强公司列表。

df = pd.read_csv('f500.csv', index_col = 0)

问题是我们被教导通过像这样将布尔条件传递给数据框来使用布尔索引;

motor_bool = df["industry"] == "Motor Vehicles and Parts"
motor_countries = df.loc[motor_bool, "country"]

上面的代码是查找以“汽车及零部件”为行业的国家。模块中的最后一个练习要求我们

“创建一个系列,industry_usa,其中包含总部位于美国的公司的行业列中两个最常见值的计数。”

答案代码是

industry_usa = f500["industry"][f500["country"] == "USA"].value_counts().head(2)

我不明白我们怎么能突然背靠背使用 df[col]df[col] ?我不应该先通过 bool 条件,然后指定我想使用 .loc 将其分配给哪一列吗?链接使用的方法与我们实践的方法非常不同。

请帮忙。我真的很困惑。

一如既往,谢谢你,堆栈社区。

4

1 回答 1

2

我认为不推荐最后一个解决方案,这里最好使用DataFrame.loc第二个解决方案来按掩码获取列industry然后获取计数:

industry_usa = f500.loc[f500["country"] == "USA", "industry"].value_counts().head(2)

另一个解决方案Series.nlargest

industry_usa = f500.loc[f500["country"] == "USA", "industry"].nlargest(2)
于 2020-05-04T10:13:20.770 回答