如何删除数据帧中偶数索引处的所有行?

时间:2019-04-15 08:12:18

标签: python pandas indexing

我有数据框熊猫;

        Data
  Id    
ID_1    19
ID_2    33
ID_3    17
ID_4    52
ID_5    17
ID_6    41

Id是索引。如何按索引删除所有ID为偶数的行?

这是我的预期结果:

        Data
  Id    
ID_1    19
ID_3    17
ID_5    17

2 个答案:

答案 0 :(得分:7)

您可以通过DataFrame.iloc选择每个偶数行:

df1 = df.iloc[::2]

或按numpy.arange创建的模数为2的掩码进行过滤,并按0比较:

df1 = df[np.arange(len(df)) % 2 == 0]
print (df1)
      Data
Id        
ID_1    19
ID_3    17
ID_5    17

答案 1 :(得分:1)

如果没有numpy,则可以选择

df.loc[["ID_" + str(x) for x in range(len(df) + 1) if x % 2 != 0]]

df.filter(items=["ID_" + str(x) for x in range(len(df) + 1) if x % 2 != 0], axis=0)