我有一个数据框架,有3000家公司,为期五年。
Id Company Year Value
0 1111111 2016 NaN
1 1111111 2015 3871.0
2 3333333 2016 3989.0
3 3333333 2015 3648.0
4 4444444 2016 5456.0
5 4444444 2015 NaN
6 2222222 2016 NaN
7 2222222 2015 10.0
8 5555555 2016 1515.0
9 5555555 2015 2654.0
我喜欢做出选择,确保所有公司都没有NaN值。因此,选择中的所有期间都有数据,因此每个期间的公司数量相同。
最简单的方法是什么?
结果应为:
Id Company Year Value
2 3333333 2016 3989.0
3 3333333 2015 3648.0
7 5555555 2016 1515.0
8 5555555 2015 2654.0
由于
答案 0 :(得分:1)
groupby.count()返回非空值的数量,因此如果您对公司进行分组,则计数应等于年数。假设没有重复项,您可以这样做:
df.ix[df.groupby('Company')['Value'].transform('count') > 1, :]
Out[259]:
Id Company Year Value
2 2 3333333 2016 3989.0
3 3 3333333 2015 3648.0
8 8 5555555 2016 1515.0
9 9 5555555 2015 2654.0