过滤特定值数据帧 pandas/python

时间:2021-06-01 07:41:44

标签: python pandas dataframe data-science

我想创建一个函数来过滤数据框列中的特定值(
我的数据框具有以下列和值:

<头>
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,但我不明白。谁能给我一些建议。

1 个答案:

答案 0 :(得分:1)

对过滤的行使用 GroupBy.size 并通过 Series.reset_indexSeries 转换为 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