我有这个数据框:
COL_1 COL_2 COL_3 COL_4 NUM_1 NUM_2 NUM_3 NUM_4
NaN AD MD TR 0 0 1 1
AD TT MD TR 1 0 1 1
AD TT MD NaN 0 0 1 0
我想删除 AD
之后列索引的 NUM_
等于 1 的那些行。例如,第一行中 AD
的列索引等于 2 (COL_2
)。因此,NUM_3
(NUM_2
之后的下一个)等于 1。这意味着应删除该行。
结果:
COL_1 COL_2 COL_3 COL_4 NUM_1 NUM_2 NUM_3 NUM_4
AD TT MD TR 1 0 1 1
AD TT MD NaN 0 0 1 0
最佳答案
假设COL*
列数与NUM*
列数相同,可以试试下面的向量化方法:
df[~((df.filter(like="COL") == "AD").values &
(df.filter(like="NUM") == 1).shift(-1, axis=1).fillna(False).values)
.any(axis = 1)]
关于python - 如何根据列相关标准删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42278306/