Python 如果列中出现足够多的id,则在dataframe中使用TRUE创建列

Python 如果列中出现足够多的id,则在dataframe中使用TRUE创建列,python,pandas,Python,Pandas,我有一个id列为col1,col2的数据帧。该id可以出现多次 id col1 col2 1 a b 1 c d 2 e f 3 g h 4 x y 4 x z 4 a z 我想用以下内容创建一个新列: 如果id在id列中至少出现n次(n=2),则为TRUE 否则就错了 还有像下面这样的df id co

我有一个id列为col1,col2的数据帧。该id可以出现多次

id     col1    col2
1       a       b
1       c       d
2       e       f
3       g       h
4       x       y
4       x       z
4       a       z
我想用以下内容创建一个新列:

  • 如果id在id列中至少出现n次(n=2),则为TRUE
  • 否则就错了
还有像下面这样的df

id     col1    col2   enough_id
1       a       b        True
1       c       d        True
2       e       f        False
3       g       h        False
4       x       y        True
4       x       z        True
4       a       z        True
我试过这个

df['enough_id'] = np.where(df['id'].value_counts() > 2, True, False)
但我得到了:“值的长度和索引的长度不匹配”。所以我想这是因为我正在创建一个带有df['id']的系列


我怎样才能得到这个专栏?听起来很简单,但我找不到。感谢您展示的样品,请尝试以下内容。我们可以使用熊猫的,
ge
功能

df['enough_id'] = df.groupby('id')['id'].transform('count').ge(2)
输出如下:

   id col1 col2  enough_id
0   1    a    b       True
1   1    c    d       True
2   2    e    f      False
3   3    g    h      False
4   4    x    y       True
5   4    x    z       True
6   4    a    z       True

欢迎我建议查看groupby,然后稍后合并。可能不是最有效率的,但会做好的谢谢你的建议!它起作用了。我不知道这个函数。非常强大。多谢各位!我会经常用的@欢迎你,干杯,快乐学习。