首页 > 解决方案 > 如何遍历数据框并对该数据框的每一行执行一些操作?

问题描述

我有一个场景,我在 CSV 文件中有一些数据,我需要遍历每一行并查找是否找到特定值。如果找到,则执行一项操作,否则执行另一项操作。

这是我使用的数据集:

在此处输入图像描述

import pandas as pd

dataset = pd.read_csv('Teams\India.csv')

Ind = 0 SA = 0

if(dataset.loc[(dataset['Opponent']) == 'South Africa' & (dataset['Result']) == 'Won']): Ind = Ind + 1 else: SA = SA + 1

根据我的 CSV 文件,印度与南非打了 6 场比赛,赢了 5 场。所以,最后,'Ind' 的值必须是 5,而 'SA' 的值必须是 1。

但是,无论我在尝试运行此代码时做什么,都会收到以下错误:

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

TypeError: cannot compare a dtyped [object] array with a scalar of type [bool]

标签: python-3.xpandascsvdataframefor-loop

解决方案


看起来您可以一口气完成:

Ind = ((dataset['Opponent'] == 'South Africa') & (dataset['Result'] == 'Won')).sum()
SA = len(dataset) - Ind

推荐阅读