删除跨列分布的重复项

2024-05-16 19:30:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像这样的数据框

Temp_1 Temp_2 Temp_3 Temp_4 Temp_5   Air
23      23     23      23     23   Oxygen
24      27     56      48     39   Nitrogen
18      18     18      18     18   Hydrogen
47      53     67      73     25   Neon

我想删除那些在所有温度列和输出中具有相同重复值的行,使其看起来像这样

Temp_1 Temp_2 Temp_3 Temp_4 Temp_5   Air
24      27     56      48     39   Nitrogen
47      53     67      73     25   Neon

Tags: 数据air温度tempneonhydrogenoxygennitrogen
2条回答

您还可以检查所有列Temp_X是否等于平均值。事实上,如果一个值(any)与其平均值(ne)不相等,则保留行

>>> df[df.filter(like='Temp').apply(lambda x: x.ne(x.mean()).any(), axis=1)]

   Temp_1  Temp_2  Temp_3  Temp_4  Temp_5       Air
1      24      27      56      48      39  Nitrogen
3      47      53      67      73      25      Neon

只需检查所有Temp列是否都等于其中一列。e、 g检查是否全部等于第一个Temp列,如果全部等于,则删除:

temp = df.filter(like='Temp')
df[~temp.eq(temp.iloc[:, 0], 0).all(1)] 

#   Temp_1  Temp_2  Temp_3  Temp_4  Temp_5       Air
#1      24      27      56      48      39  Nitrogen
#3      47      53      67      73      25      Neon

相关问题 更多 >