【发布时间】:2018-03-20 21:09:23
【问题描述】:
我知道如何append a column counting the number of elements in a group,但我只需要为该组中满足特定条件的号码这样做。
例如,如果我有以下数据:
import numpy as np
import pandas as pd
columns=['group1', 'value1']
data = np.array([np.arange(5)]*2).T
mydf = pd.DataFrame(data, columns=columns)
mydf.group1 = [0,0,1,1,2]
mydf.value1 = ['P','F',100,10,0]
valueslist={'50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68','69','70','71','72','73','74','75','76','77','78','79','80','81','82','83','84','85','86','87','88','89','90','91','92','93','94','95','96','97','98','99','100','A','B','C','D','P','S'}
因此我的数据框如下所示:
mydf
group1 value1 0 0 P 1 0 F 2 1 100 3 1 10 4 2 0
然后我想计算每个group1 值中的行数,其中value1 在valuelist 中。
我想要的输出是:
group1 value1 count 0 0 P 1 1 0 F 1 2 1 100 1 3 1 10 1 4 2 0 0
【问题讨论】:
-
我认为输出不清楚。为什么它是第 3 行的 1? (+1 提供良好的样本数据)
-
@AntonvBR 因为在
group1=1中只有 1 个value1值在valuelist中。你明白我的意思吗?我们在group1的组中计算valuelist中有多少行有value1值。为了给你上下文,这些是班级组的成绩。所以value1的值 100 是通过但 10 不是。因此count表明选修课group1组“1”中的1 课已通过。同样的事情也适用于group1的组 0。一个有一个通过值 (P) 和一个失败 (F) 因此该组通过的总数是 1。