Pandas数据框架获取列表中分类值的个数



我是python数据集上学习机器学习的新手,我试图在下面的数据框上执行以下操作(仅显示一个片段)

<表类> id 国家 设备 标签 tbody><<tr>100sg三星0100chgalaxy s0200abpocophone1200eeiphone 11200我的iphone 21

可以使用

df.loc[ df['label'] == 1 ] ['country']

这将找到df['label']为1的索引,loc删除它们,并从中取'country'系列。

尝试通过loc访问器和布尔屏蔽:

count=df.loc[df['label'].eq(1),['id','country']].value_counts()
#count the values of country where 'label' is 1
lst=count.index.get_level_values(1).unique().tolist()
#get the index of count for country names
lst

输出:

['ab', 'ee', 'my']
count

输出:

id   country
200  ab         1
ee         1
my         1
dtype: int64

如果我理解正确的话:

  1. 独特的国家标签= 1
>>> df.query('label == 1')['country'].unique()
array(['ab', 'ee', 'my'], dtype=object)
  1. 当label = 1时,每个id的唯一国家计数
>>> df.query('label == 1').groupby('id')['country'].nunique()
id
200    3
Name: country, dtype: int64
  1. 更新版本:
countries = df.query('label == 1')['country'].unique()
df.query('country in @countries').groupby('id')['country'].nunique()

最新更新