我正在学习Python,我想创建一个脚本来指示谁进行了哪些培训。 CSV 文件具有名称列和 TrainingID 列。我想检查上面的行是否具有相同的名称和不同的训练 ID。我发现 Pandas 不喜欢标准 if 语句,所以我想知道如何修复它。
Name, TrainingID
John,1
John,2
Pete,1
James,1
James,2
James,3
Clint,1
Clint,2
Herb,1
Bob,1
以上是 csv 文件的 schrunk 版本。
我尝试将此作为一个函数,但它只是垃圾邮件“不可能”,因为布尔变量不会每行切换,而只是在第一次找到重复名称时切换。
有什么方法可以创建一个函数来检查上面的行是否同名,然后打印该人已完成的培训。
def klaar():
dfCh = pd.read_csv("solitude.csv")
for row in dfCh.iterrows():
booleanM = dfCh.duplicated(subset=['nd']).any()
booleanT = dfCh.duplicated(subset = ['TrainingID']).any()
if booleanM == True and booleanT == True:
print("impossible")
elif booleanM == True and booleanT == False:
print("+ 1 training")
if booleanM == False and booleanT == True:
print("new person")
我会汇总名称并列出不同的值
df.groupby('Name').agg('distinct')