【问题标题】:Count if with 2 conditions - Python如果有 2 个条件,则计算 - Python
【发布时间】:2023-04-05 11:39:01
【问题描述】:

我在解决这个问题时遇到了一些问题,所以我来这里寻求您的帮助。

我有一个包含许多列的数据框,我想计算特定列的多少单元格满足另一列的条件。在 Excel 中,这将是 count.if,但我无法完全解决我的问题。举个例子吧。

Names    Detail

John      B
John      B
John      S
Martin    S
Martin    B
Robert    S

例如,在这个 df 中,总共有 3 个“B”和 3 个“S”。

如何获取 A 列中每个名称的“B”和“S”数?

我正在尝试获取类似

的结果数据框

         B      S
John     2      1
Martin   1      1
Robert   0      1

我试过了

b_var = sum(1 for i in df['Names'] if i == 'John') 
s_var = sum(1 for k in df['Detail'] if k == 'B')

然后做一个for?但我不知道如何同时处理这两个条件,还是 groupby 方法更好?

谢谢!!

【问题讨论】:

  • pd.crosstab(df.Names,df.Detail)

标签:
python
pandas
for-loop
group-by