如何遍历DataFrame统计每行大于另一DataFrame对应列最小值的列数
解决方法
不需要手动遍历每行,用Pandas的向量化操作效率更高,尤其适合你这种多列的场景,步骤如下:
- 先确保
leagueTwo和存储最小值的df列名完全匹配(避免列不匹配导致的错误) - 直接对两个DataFrame做大于比较,得到一个布尔值矩阵:
bool_matrix = leagueTwo > df - 对每行的布尔值求和(True会被当作1,False当作0),得到每行符合条件的列数:
leagueTwo['cols_above_min'] = bool_matrix.sum(axis=1)
完整示例代码:
# 你已有的获取最小值的代码 a = dfl2.min(numeric_only=True) df = pd.DataFrame([a]) # 核心统计代码 # 确保列匹配(可选但推荐,避免列顺序或名称不一致的问题) leagueTwo = leagueTwo[df.columns] # 生成布尔矩阵并统计每行符合条件的列数 leagueTwo['cols_above_min'] = (leagueTwo > df).sum(axis=1)
处理完成后,leagueTwo新增的cols_above_min列,就是每行(球队)中数值大于对应列最小值的列数。
内容的提问来源于stack exchange,提问作者Tez
相关产品推荐
相关产品推荐

