假设我有一个如下所示的 Dataframe :
A B C D E F G H 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
我想选择数据点的最大数量,条件是当其他选定列为1时,所有数据点都为1。我们也可以修剪行以获得此结果,但目标是获得尽可能多的数据点(其中数据点定义为 Dataframe 中的一个项目/单元格)
jaxagkaj1#
预期的输出不清楚,但是可以使用聚合来标识相似的列并计算1的总数:
out = (df.T .assign(count=df.sum()) .reset_index() .groupby(list(df.index)) .agg({'index': list, 'count': 'sum'}) )
输出:
index count 0 1 2 3 4 0 1 0 1 1 [B, D] 6 1 0 0 1 1 [F, G, H] 9 1 0 1 1 1 [A] 4 1 1 0 1 1 [E] 4 1 1 1 0 1 [C] 4
然后,您可以获得给出最大计数的列:
out.loc[out['count'].idxmax(), 'index']
输出:['F', 'G', 'H']
['F', 'G', 'H']
1条答案
按热度按时间jaxagkaj1#
预期的输出不清楚,但是可以使用聚合来标识相似的列并计算1的总数:
输出:
然后,您可以获得给出最大计数的列:
输出:
['F', 'G', 'H']