如何使用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')