结合 iloc 和 loc

Rol*_*f12 6 python pandas

我正在尝试将 iloc 和 loc 结合起来,有可能吗?

具体来说,我想:

  • 以 (:train_size) 形式为行值提供整数

  • 给出列值的列名列表(替换下面代码中的 [0,1])

    training_set = dataset.iloc[:train_size,[0,1]].values

training_set = dataset.loc[:train_size,[list_input_and_y_parameters]].values
Run Code Online (Sandbox Code Playgroud)

给出错误信息

类型错误:无法使用这些索引器进行切片索引 [4275]

有没有办法做到这一点?

非常感谢

jez*_*ael 10

您可以链接此操作或仅使用ilocwithIndex.get_indexer用于列表中列的位置:

training_set = dataset.iloc[:train_size].loc[:, ['col1','col2']].values
Run Code Online (Sandbox Code Playgroud)
training_set = dataset.iloc[:train_size, df.columns.get_indexer(['col1','col2'])].values
Run Code Online (Sandbox Code Playgroud)

  • 我认为使用“Index.get_indexer”是最好的选择,因为它也适用于赋值 (2认同)