我想创建一个函数来过滤数据框列中的特定值(
我的数据框具有以下列和值:
Zoekterm | High_bias |
---|---|
男人 | 1 |
男人 | 1 |
Vrouw | 1 |
kind | 0 |
我写了一个过滤特定值的函数,见下文
Def most_likey_bias():
bias = data['high_bias'] == 1
if bias.any():
print(data.loc[bias,['High_bias','Zoekterm']
print(most_likey_bias())
表的结果是:
Zoekterm | High_bias |
---|---|
vrouw | 1 |
kind | 1 |
这张表给出了哪个“Zoekterm”的值为 1
但是因为“Zoekterm”有同名的重复项,所以我想要一个表来计算每个 zoekterm
所以我想要的表是:
这意味着一个表格,它根据特定值(1)为每个“Zoekterm”计算它有多少“高偏差”
Zoekterm | High_bias |
---|---|
男人 | 4 |
Vrouw | 2 |
kind | 5 |
我尝试使用 groupby 或 count,但我不明白。谁能给我一些建议。
答案 0 :(得分:1)
对过滤的行使用 GroupBy.size
并通过 Series.reset_index
将 Series
转换为 DataFrame:
def most_likey_bias():
bias = data['high_bias'] == 1
if bias.any():
return data[bias].groupby('Zoekterm').size().reset_index(name='High_bias')
类似的想法是聚合sum
:
def most_likey_bias():
bias = data['High_bias'] == 1
if bias.any():
return data[bias].groupby('Zoekterm')['High_bias'].sum().reset_index(name='High_bias')
print (most_likey_bias())
Zoekterm High_bias
0 Man 2
1 Vrouw 1