make year
honda 2011
honda 2011
honda n/a
toyota 2011
toyota 2022
我试图得到列表的make有值计数大于2下面是代码:
list = [I for I in df.make.unique() if df.loc[df.make==I, 'make'].value_counts()>2]
由于某些原因,我得到以下错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
vc = df['make'].value_counts()
vc[vc>2].index.to_list()
o/p:
['honda']
关于你的错误:
[I for I in df.make.unique() if (df.loc[df.make==I, 'make'].value_counts()>2).values[0]]
count
就足够了
lst = [I for I in df.make.unique() if df.loc[df.make==I, 'make'].count()>2]
也可以使用
lst = df.value_counts('make')[df.value_counts('make')>2].index.tolist()
print(lst)
['honda']
还有另一种方法
df = data.groupby("make")['make'].count().to_frame(name='cnt').reset_index()
df[df.cnt > 2]['make'].to_list()
返回一个列表
['honda']