Python - Pandas - 检查上面的名称行是否相同并向其添加条件

问题描述 投票:0回答:1

我正在学习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")
python python-3.x pandas dataframe csv
1个回答
0
投票

我会汇总名称并列出不同的值

df.groupby('Name').agg('distinct')
© www.soinside.com 2019 - 2024. All rights reserved.