如何通过混合阶梯切片

how slice by hybrid stile

有一个随机 df

df = pd.DataFrame([[1,2,3,4],[4,5,6,7],[7,8,9,10],[10,11,12,13],[14,15,16,17]], columns=['A', 'B','C','D'])
cols_in = list(df)[0:2]+list(df)[4:]

现在:

x = []
for i in range(df.shape[0]):
   x.append(df.iloc[i,cols_in])  

显然在循环中,x return 由于 col_in 在 iloc 中赋值而导致的错误。

如何像在 append 函数中一样应用 df 的混合样式切片?

您似乎要排除一列?没有第 4 列,因此根据您之后的列,您可能需要这样的内容:

df = pd.DataFrame([[1,2,3,4],[4,5,6,7],[7,8,9,10],[10,11,12,13],[14,15,16,17]], columns=['A', 'B','C','D'])

如果你想从列名中获取列索引,你可以这样做:

cols = ['A', 'B', 'D']
cols_in = np.nonzero(df.columns.isin(cols))[0]


x = []
for i in range(df.shape[0]):
   x.append(df.iloc[i, cols_in].to_list()) 
x 

输出:

[[1, 2, 4], [4, 5, 7], [7, 8, 10], [10, 11, 13], [14, 15, 17]]