pandas中的数据帧过滤

2024-10-01 22:27:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何在一个数据帧中过滤或子集一个特定的组(例如,从下面的数据帧中允许的女性)? 我试图根据性别来总结录取率/拒绝率。这个数据帧很小,但是如果它大得多,比如说数万行,在那里无法索引单个值呢?在

      Admit  Gender Dept  Freq
0   Admitted    Male    A   512
1   Rejected    Male    A   313
2   Admitted  Female    A    89
3   Rejected  Female    A    19
4   Admitted    Male    B   353
5   Rejected    Male    B   207
6   Admitted  Female    B    17
7   Rejected  Female    B     8
8   Admitted    Male    C   120
9   Rejected    Male    C   205
10  Admitted  Female    C   202
11  Rejected  Female    C   391
12  Admitted    Male    D   138
13  Rejected    Male    D   279
14  Admitted  Female    D   131
15  Rejected  Female    D   244
16  Admitted    Male    E    53
17  Rejected    Male    E   138
18  Admitted  Female    E    94
19  Rejected  Female    E   299
20  Admitted    Male    F    22
21  Rejected    Male    F   351
22  Admitted  Female    F    24
23  Rejected  Female    F   317

Tags: 数据gendermalefemale子集freq性别女性
1条回答
网友
1楼 · 发布于 2024-10-01 22:27:46

要过滤数据,可以使用非常全面的query函数。在

# Test data
df = DataFrame({'Admit': ['Admitted', 'Rejected', 'Admitted', 'Rejected', 'Admitted', 'Rejected', 'Admitted'],
        'Gender': ['Male', 'Male', 'Female', 'Female', 'Male', 'Male', 'Female'],
        'Freq': [512, 313, 89, 19, 353, 207, 17],
        'Gender Dept': ['A', 'A', 'A', 'A', 'B', 'B', 'B']})

df.query('Admit == "Admitted" and Gender == "Female"')

      Admit  Freq  Gender Gender Dept
2  Admitted    89  Female           A
6  Admitted    17  Female           B

要总结数据,请使用groupby。在

^{pr2}$

您可以简单地通过对创建的MultiIndex进行子集设置来过滤结果。在

group.loc[('Admitted', 'Female')]

Freq    106
Name: (Admitted, Female), dtype: int64

相关问题 更多 >

    热门问题