我想从多列python的熊猫中获取带有.loc []的数据框

时间:2020-04-17 13:27:39

标签: python pandas

我正在尝试从此数据框中选择一些特定的行:

df   Name Book
1    a1    a2
2    b1    b2
3    c1    c2
4    d1    d2

我有一个变量result,其中包含从数据帧的第一行到最后一行的生成的数字。 现在我尝试 df_new=df.loc[result,:] 这给了我一个错误。当我在没有book列的情况下使用df时,它可以工作,但是df_new仅包括第一列。我不知道如何在选择特定行时使其返回多列。 我想要的例子:

df_new Name Book
2      b1    b2
3      c1    c2

我拥有/得到的东西:

df_new Name
2      b1
3      c1

2 个答案:

答案 0 :(得分:0)

尝试一下。

start = 1
end = 2
df.loc[start:end,:]

答案 1 :(得分:0)

您要插入一个逗号,告诉.loc您正在切换到选择列。

所以df.loc[result:]已经可以解决问题了。

或者,您可以明确地指定一个包含所有列的范围:df.loc[result:, :]

看看.locpandas'文档以了解更多信息!

允许的输入为:

  • 单个标签,例如5'a',(请注意,5被解释为索引的标签,而不是索引中的整数位置)。

  • 标签的列表或数组,例如['a', 'b', 'c']

  • 带有标签的切片对象,例如'a':'f'

警告

请注意,与通常的python切片相反,开始和停止都包括在内

  • 与所切轴长度相同的布尔数组,例如[True, False, True]

  • 具有一个参数(调用Series或DataFrame)的callable函数,该函数返回用于索引的有效输出(上述之一)