python - Pandas 将两列分组

标签 python pandas

我有如下所示的数据:

     Gender    topic: Big data infrastructure
    0     F     NaN
    1     M     -1
    2     M     -1
    3     M     -1
    4     F     1
    5     M     NaN
    6     M     NaN
    7     M     NaN
    8     M     -2
    9     M     1
    10    F     1
    11    M     NaN
    12    M     1
    13    M     -1
    14    M     1
    15    M     NaN
    16    M     NaN
    17    M     NaN
    18    M     -1
    19    M     -2
    20    F     1
    21    M     NaN
    22    M     NaN
    23    F     2
    24    M     -2
    25    F     2
    26    M     NaN
    27    M     2
    28    M     1
    29    M     NaN
    30    M     2
    31    M     NaN
    32    M     NaN
    33    F     2
    34    M     2

我想以某种方式计算有多少男性和女性给出了 -2、-1、0、1、2 的分数或没有回答,但我无法弄清楚。我尝试了几种 groupby 方法,但它们不起作用。有人有一些指导或建议吗?

最佳答案

执行groupby并使用value_counts:

df.groupby('Gender')['topic: Big data infrastructure'].value_counts(dropna=False)

结果输出:

Gender  topic: Big data infrastructure
F        1.0                               3
         2.0                               3
        NaN                                1
M       NaN                               13
        -1.0                               5
         1.0                               4
        -2.0                               3
         2.0                               3

关于python - Pandas 将两列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44573914/

相关文章:

python - Pandas 列到 numpy 数组

python - 为什么我不能分配给 Pandas DataFrame 的一部分?

python 导入语句

python - 带有属性的奇怪的 python 列表语法

Python:如何使用shutil.make_archive?

Python:计算 Pandas 中两列之间的 tf-idf 余弦相似度时出现 MemoryError

python - 合并 Pandas 中的连续行并保留一些行不变

python - ffmpeg 子进程无法在 OS X 上打开

python - 如何在 Windows 10 中配置 Visual Studio Code 以忽略 shebangs 并使用 Python 解释器路径?

python - Pandas:合并两个一维数据帧,输出两列并填充唯一元素的值