Python 数据框中的多重切片

Multiple Slicing in a dataframe in Python

例如,如果我有一个包含 A - Z 列的数据框。

  1. 我想对列 "J" 进行切片并取回除列 "J" 之外的所有列 A - Z。

  2. 我想分割 A - Z 之间的所有列,只返回列 "J"

提前致谢

我想你可以使用 DataFrame.pop, for return J column need convert Series to DataFrame by Series.to_frame:

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9],
                   'D':[1,3,5],
                   'J':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B  C  D  F  J
0  1  4  7  1  7  5
1  2  5  8  3  4  3
2  3  6  9  5  3  6

print (df.pop('J'))
0    5
1    3
2    6
Name: J, dtype: int64

dfJ = df.pop('J').to_frame()
print (dfJ)
   J
0  5
1  3
2  6

print (df)
   A  B  C  D  F
0  1  4  7  1  7
1  2  5  8  3  4
2  3  6  9  5  3

另一个解决方案:

cols = [col for col in df.columns if col != 'J']
print (df[cols])
   A  B  C  D  F
0  1  4  7  1  7
1  2  5  8  3  4
2  3  6  9  5  3

print (df[['J']])
   J
0  5
1  3
2  6