在一组列的所有子集中执行“计数”

时间:2018-02-20 03:43:26

标签: python dataframe count subset

拥有数据框'df':

l = [['a',1,3,3,1,1,3,3,3],['b',1,1,3,1,3,3,1,3],['c',1,1,1,1,3,1,1,1]]
col = ['id','x1','x2','x3','x4','y1','y2','y3','y4']

df = pd.DataFrame (l, columns = col)

df

我想在X = {x1,x2,x3,x4}和Y = {y1,y2,y3,y4}列的子集的每个子集中计算值“1”的行数(ID)。 对于示例子集s1 = {[x1,x3],[y2,y3,y4]},代码执行:

df[(df['x1']==1) & (df['x3']==1) & (df['y2'] == 1) & (df['y3'] == 1) & (df['y4'] == 1)].count()['id']

并返回“1”作为计数。并对{子集的X列} x {Y列的子集}的所有子集重复此操作。

我需要先构建子集的所有子集(例如使用建议的函数here),然后对每个子集执行计数。执行此操作的最佳方式是什么?

0 个答案:

没有答案