我有一個(gè)從包含學(xué)生 ID、姓名和作業(yè) 1、2、3 的 csv 文件構(gòu)建的數(shù)據(jù)框... csv 文件將作為輸入輸入,因此值可能會(huì)有所不同。如果學(xué)生 ID 不唯一,我想打印錯(cuò)誤消息列表。下面的代碼工作正常,因?yàn)?GradesM3.csv 中沒有重復(fù)項(xiàng): grades = pd.read_csv('gradesM3.csv',sep=';') duplicates = pd.concat(g for _, g in grades.groupby("StudentID") if len(g) > 1) zipped = zip(duplicates['StudentID']) for student in zipped: print(f'The student ID {student} appears multiple times.')但是,如果我更改 CSV 文件并創(chuàng)建一些重復(fù)的學(xué)生 ID,則會(huì)出現(xiàn)以下錯(cuò)誤:ValueError: No objects to concatenate如果有重復(fù),我正在嘗試編寫一個(gè)打印以下內(nèi)容的代碼:The student ID ('s123789',) appears multiple times.The student ID ('s123789',) appears multiple times.The student ID ('s123789',) appears multiple times.如果沒有,則如下:There are no duplicates in your file. 我嘗試了以下代碼: grades = pd.read_csv('gradesM3.csv',sep=';') duplicates = pd.concat(g for _, g in grades.groupby("StudentID") if len(g) > 1) if len(duplicates)>0: zipped = zip(duplicates['StudentID']) for student in zipped: print(f'The student ID {student} appears multiple times.') else: print('The grades are correctly scaled along the 7-point grading system.')但我收到相同的錯(cuò)誤消息:ValueError: No objects to concatenate. 在此先感謝您的幫助。
2 回答

慕尼黑5688855
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
使用duplicatedpandas的方法更直接的解決方案是這樣的
import pandas as pd
# Example data
df = pd.DataFrame({'id' : [1,2,2,4, 5, 1], 'name' : ["a", "b", "b", "d", "e", "a"]})
print(df)
# id name
#0 1 a
#1 2 b
#2 2 b
#3 4 d
#4 5 e
#5 1 a
# Get the duplicates - each df row where th eid column is duplicated
df_duplicates = df[df['id'].duplicated()]
for id in df_duplicates['id']:
print(f"Student {id} is a duplicate")
#Student 2 is a duplicate
#Student 1 is a duplicate
添加回答
舉報(bào)
0/150
提交
取消