Python Pandas groupby:删除重复项

Python Pandas groupby:删除重复项,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,输入:(CSV文件) 预期输出:(CSV文件) 我试过这个: df = pd.read_csv("student_info.csv") df.groupby(['name', 'subject']).sum().to_csv("output.csv") 但它在第一列给出了副本,如下所示 name subject internal_1_marks internal_2_marks final_marks abc python

输入:(CSV文件)

预期输出:(CSV文件)

我试过这个:

df = pd.read_csv("student_info.csv")
df.groupby(['name', 'subject']).sum().to_csv("output.csv")
但它在第一列给出了副本,如下所示


name    subject internal_1_marks    internal_2_marks    final_marks
abc     python      45                      50              47
pqr     java        45                      46              46
pqr     python      40                      33              37
xyz     java        45                      43              49
xyz     node        40                      30              35
xyz     ruby        50                      45              47

我需要删除第一列中的重复项,如预期输出所示

谢谢。

类似的答案

相似的答案


您可以在分组后按筛选重复项

df.groupby(['name','subject']).sum().reset_index().assign(name=lambda x:x['name'])。其中(~x['name'].duplicated(),'')。to_csv('filename.csv',index=False)

此外,在读取文件时,您还可以传递副本的
索引\u col


df=pd.read\u csv('test.csv',index\u col=[0])

您可以在分组后按

df.groupby(['name','subject']).sum().reset_index().assign(name=lambda x:x['name'])。其中(~x['name'].duplicated(),'')。to_csv('filename.csv',index=False)

此外,在读取文件时,您还可以传递副本的
索引\u col


df=pd.read\u csv('test.csv',index\u col=[0])

是否希望csv文件中有空格
”?是的,输入文件也是csv文件,预期输出也在csv文件中。是否希望csv文件中有空格
?是的,输入文件也是csv文件,预期输出也在csv文件中。
df = pd.read_csv("student_info.csv")
df.groupby(['name', 'subject']).sum().to_csv("output.csv")

name    subject internal_1_marks    internal_2_marks    final_marks
abc     python      45                      50              47
pqr     java        45                      46              46
pqr     python      40                      33              37
xyz     java        45                      43              49
xyz     node        40                      30              35
xyz     ruby        50                      45              47

mask = df['name'].duplicated()
df.loc[mask.values,['name']] = ''

  name subject  internal_1_marks  internal_2_marks  final_marks
0  abc  python                45                50           47
1  pqr    java                45                46           46
2       python                40                33           37
3  xyz    java                45                43           49
4         node                40                30           35
5         ruby                50                45           47