我有一个名为df的数据帧
数据框中的列可以按逻辑分组。因此,我将列名分组在列表A、B、C中,其中:
A = [column_1, column_2, column_3]
B = [column_4, column_5, column_6]
C = [column_7, column_8, column_9]
除了列列\u 1到列\u 9之外,df还有一个称为“文件名\u ID”的列,用作索引,因此不分组。列1到列9只包含0和1的值。你知道吗
现在我想过滤数据帧,使它只包含每个组(A,B,C)至少有一个非零值的行。因此,我只想保留具有相应文件名的行,以满足此条件。你知道吗
我已经为每个组创建了一个单独的数据帧:
df_A = df.loc[(df[A]!=0).any(axis=1)]
df_B = df.loc[(df[B]!=0).any(axis=1)]
df_C = df.loc[(df[C]!=0).any(axis=1)]
但是,我不知道如何同时应用所有的条件,也就是说,如何创建一个新的数据帧,其中所有的行都填满了每个逻辑列组中至少有一个非零值的条件。你知道吗
创建了一个包含示例数据的csv文件
样本输入:
输出:
设置
解决方案
创建词典
然后
groupby
基于axis=1
注意那些没有成功的
您也可以有这样的列:
执行相同的
groupby
请尝试以下操作:
相关问题 更多 >
编程相关推荐