我有一個從包含學生 ID、姓名和作業 1、2、3 的 csv 文件構建的數據框... csv 文件將作為輸入輸入,因此值可能會有所不同。如果學生 ID 不唯一,我想打印錯誤消息列表。下面的代碼工作正常,因為 GradesM3.csv 中沒有重復項: 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 文件并創建一些重復的學生 ID,則會出現以下錯誤:ValueError: No objects to concatenate如果有重復,我正在嘗試編寫一個打印以下內容的代碼: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.')但我收到相同的錯誤消息:ValueError: No objects to concatenate. 在此先感謝您的幫助。
2 回答

慕尼黑5688855
TA貢獻1848條經驗 獲得超2個贊
使用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
添加回答
舉報
0/150
提交
取消