【发布时间】: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
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如果有 2 个条件,则计算 – Python - Python技术站