如何使用python计算重复行并比较excel中的两列值

如何使用python计算重复行并比较excel中的两列值,python,excel,pandas,csv,Python,Excel,Pandas,Csv,这是行和列 email mark A@email.com 50 B@email.com 60 B@email.com 50 B@email.com 60 B@email.com 60 这是例外输出 email mark totalcount A@email.com 50 1 B@email.

这是行和列

email                mark
A@email.com           50
B@email.com           60
B@email.com           50
B@email.com           60
B@email.com           60
这是例外输出

email                   mark    totalcount
A@email.com             50      1
B@email.com             50      1
B@email.com             60      3
这是我的python代码

df=pd.read_excel('email.xlsx')
df['Total'] = df.mark.apply(lambda x: df.mark.value_counts()[x])
dr = data_file[['email', 'mark', 'totalcount']]
print(dr)
我的输出是这样的

          email        mark    totalcount
0          A@email.com   50     2
1          B@email.com   60     3
2          B@email.com   50     2
3          B@email.com   60     3
4          B@email.com   60     3

如何比较两列并添加重复的行值。所以你能帮我一下吗?你应该同时考虑电子邮件和马克。我认为分组和转换会起作用

df['total_count']=df.groupby(['email','mark'])['mark'].transform('count'))
dr=df.drop_duplicates()
输出:

电子邮件标记总数
0A@email.com    50            1
1.B@email.com    60            3
2.B@email.com    50            1

您应该同时考虑电子邮件和标记。我认为分组和转换会起作用

df['total_count']=df.groupby(['email','mark'])['mark'].transform('count'))
dr=df.drop_duplicates()
输出:

电子邮件标记总数
0A@email.com    50            1
1.B@email.com    60            3
2.B@email.com    50            1

或者干脆
df.groupby(['email',mark'],sort=False).size().reset_index(name='total_count')
或者干脆
df.groupby(['email',mark'],sort=False).size().reset_index(name='total_count')