如何通过混合阶梯切片
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]]
有一个随机 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]]