Python 数据框中的多重切片
Multiple Slicing in a dataframe in Python
例如,如果我有一个包含 A - Z 列的数据框。
我想对列 "J" 进行切片并取回除列 "J" 之外的所有列 A - Z。
我想分割 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
例如,如果我有一个包含 A - Z 列的数据框。
我想对列 "J" 进行切片并取回除列 "J" 之外的所有列 A - Z。
我想分割 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