【发布时间】:2017-01-31 07:28:57
【问题描述】:
给定以下数据框:
import pandas as pd
d=pd.DataFrame({'label':[1,2,2,2,3,4,4],
'values':[3,5,7,2,5,8,3]})
d
label values
0 1 3
1 2 5
2 2 7
3 2 2
4 3 5
5 4 8
6 4 3
我知道如何计算这样的唯一值:
d['dup']=d.groupby('label')['label'].transform('count')
结果:
label values dup
0 1 3 1
1 2 5 3
2 2 7 3
3 2 2 3
4 3 5 1
5 4 8 2
6 4 3 2
但我想要一个具有以下值的列:
1 如果每个标签列有 1 unique 行,2 如果有 duplicates 并且有问题的行是这样的 first,如果行是 duplicate 的 0原件。像这样:
label values dup status
0 1 3 1 1
1 2 5 3 2
2 2 7 3 0
3 2 2 3 0
4 3 5 1 1
5 4 8 2 2
6 4 3 2 0
提前致谢!
【问题讨论】:
标签: python-3.x pandas duplicates unique conditional-statements