我在尝试弄清楚如何在列表中提取多个值之间存在一些困难,这些值间隔一些索引。例如,给定列表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)
但是,我仍然在寻找单行广义方法。