使用iloc()根据范围和单个整数选择列

时间:2019-12-19 20:49:29

标签: python pandas dataframe

鉴于下面的数据框,我想选择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列?

2 个答案:

答案 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)

您无需知道列名,只需知道其位置即可。