代码之家  ›  专栏  ›  技术社区  ›  Clock Slave

在numpy数组和pandas数据帧中选择列的常用方法

  •  -2
  • Clock Slave  · 技术社区  · 6 年前

    我必须编写一个以pandas数据帧或numpy数组作为输入的对象(类似于sklearn行为)。在这个对象的一个方法中,我需要选择列(不是特定的固定列,我根据其他计算得到一些列索引)。

    因此,为了使我的代码与这两种输入类型兼容,我试图找到一种选择列的通用方法,并尝试了如下方法 X[:,0] (不适用于pandas数据帧), X[0] 但他们的选择不同。有没有一种方法可以在熊猫和纽比之间以类似的方式选择专栏?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Ernest S Kirubakaran    6 年前

    您可以在方法中使用if条件,并对pandas数据帧和numpy数组有单独的选择方法。给出下面的示例代码。

    def method_1(self, var, col_indices):
        if isinstance(var, pd.DataFrame):
            selected_columns = var[var.columns[col_indices]]
        else:
            selected_columns = var[:,col_indices]
    

    在这里,var是您的输入,可以是numpy数组或pandas dataframe,col_index是要选择的列的索引。