使用:用于列表或numpy数组中的多个切片

时间:2016-12-05 08:43:36

标签: python pandas numpy dataframe slice

我在尝试弄清楚如何在列表中提取多个值之间存在一些困难,这些值间隔一些索引。例如,给定列表l = [0,1,2,3,4,5,6,7,8,9,10],我只想提取值[1,2,3] and [6,7,8,9]。我可以l[1:4]+l[6:-1],但有没有办法写l[1:4,6:-1]

对于我在pandas数据帧中遇到的实际问题,这实际上是一个鬼问题。我有一个数据框df,列['A','B','C','I1','D','E','F','I2','I3'],我只想保留重要的列['I1', 'I2', 'I3']。现在,我正在做的当前方法是

df.drop(df.columns[0:3], axis=1, inplace=True)
df.drop(df.columns[4:7], axis=1, inplace=True)

有没有办法做到这一点,我们可以在一行中完成,而无需明确写出列值?

谢谢! PS。我知道pandas数据帧使用numpy,我也没有在numpy中找到任何变通方法,但我认为删除列的语法是标准的python列表格式,如果这有意义的话。

编辑:我找到了一种方法来做numpy,但它也是2行,来自this question。我们可以这样做:
indices = np.hstack((np.arange(0:3), np.arange(4:7))
df.drop(df.columns[indices], axis=1, inplace=True)

但是,我仍然在寻找单行广义方法。

0 个答案:

没有答案