【问题标题】:How do select certain column indexes (continuous and individual) in Pandas如何在 Pandas 中选择某些列索引(连续和单独)
【发布时间】:2020-06-13 02:00:00
【问题描述】:

我来自 R 背景,在对 pandas 中的某些列集进行切片时遇到问题。

假设我正在尝试获取索引为 0、3、5 到 20 和 25 的列。我认为访问我想要的方法是:

df.iloc[:, [0,3,5:20,25]]

但是5:20 代码行中的: 存在语法错误。有没有一种方法可以在不输入每个数字的情况下生成从 5 到 20 的数字序列?

【问题讨论】:

  • 嗨,这不是有效的,但它有效。 result = pd.concat([df.iloc[[0,3]], df.iloc[5:20], df.iloc[[25]]], axis=0)
  • 请根据link 提供输入、输出和所需的输出示例,以了解如何发布重要问题。帮助我们帮助您。

标签: python pandas dataframe slice


【解决方案1】:

您可以先构建列表,然后使用.iloc[]

my_list = [0, 3]
my_list.extend(range(5, 21))
my_list.extend([25])
df.iloc[my_list]

【讨论】:

    【解决方案2】:

    你可以使用numpy.r_[...]:

    df.iloc[:, np.r_[0,3,5:21,25]]
    

    请注意,切片为 5:21,因为 numpy 使用 Python 的切片约定(不包括上限),而 pandas 包括下限和上限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 2017-11-20
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      相关资源
      最近更新 更多