不包括特定列的数据框列切片

Posted

技术标签:

【中文标题】不包括特定列的数据框列切片【英文标题】:dataframe column slices excluding specific columns 【发布时间】:2017-02-05 11:35:22 【问题描述】:

如果我不希望选择特定且非顺序定位的列,我将如何对具有大量列的 pandas 数据框进行切片?一种选择是删除特定的列,但我可以这样做:

df = pd.DataFrame(np.random.randint(0,100,(2,10)),columns=list('abcdefghij'))
df.iloc[:,~[1,4,9]]

【问题讨论】:

【参考方案1】:

你可以这样做:

In [66]: cols2exclude = [1,4,9]

In [67]: df.iloc[:, df.columns.difference(df.columns[cols2exclude])]
Out[67]:
    a   c   d   f   g   h   i
0  12  37  39  46  22  71  37
1  72   3  17  30  11  26  73

或:

In [68]: df.iloc[:, ~df.columns.isin(df.columns[cols2exclude])]
Out[68]:
    a   c   d   f   g   h   i
0  68  49  90   9  48  36  26
1   6  72  98  49  44  10  36

【讨论】:

谢谢。他们都工作,虽然,我发现第二个更直观

以上是关于不包括特定列的数据框列切片的主要内容,如果未能解决你的问题,请参考以下文章

pandas DataFrame数据筛选和切片

Spark - 如何使用列对数据框中的字符串进行切片[重复]

使用 iloc 从数据框中切片多个列范围

沿着 pandas 数据框中的列进行高效的跨步切片

Pandas MultiIndex 中列的条件切片

熊猫切片不包括末端