鉴于下面的数据框,我想选择A列和D列至F列。
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0,100,size=(5, 6)), columns=list('ABCDEF'))
在R中我可以说
df[ , c(1, 4:6)]
我想要大熊猫的东西。与
df.iloc[:, slice(3, 6, 1)]
我得到D列到F列。但是如何添加A列?
答案 0 :(得分:2)
您使用np.r_
传递切片和索引的组合。由于您似乎知道标签,因此可以使用get_loc
来获取iloc
索引。
import numpy as np
idx = np.r_[df.columns.get_loc('A'),
df.columns.get_loc('D'):df.columns.get_loc('F')+1]
# idx = np.r_[0, 3:6]
df.iloc[:, idx]
A D E F
0 38 71 62 63
1 60 93 72 94
2 57 33 30 51
3 88 54 21 39
4 0 53 41 20
答案 1 :(得分:0)
另一个选项是np.split
df_split=pd.concat([np.split(df, [1],axis=1)[0],np.split(df,[3],axis=1)[1]],axis=1)
您无需知道列名,只需知道其位置即可。