首页 > 解决方案 > 如何从熊猫的数据框中获取特定行

问题描述

如果问题很愚蠢,我想提前道歉,但是如何从数据框中获取一些特定的行?

例如,给我一个包含 n 行的数据框,我想打印出第一行和最后 4 行。我当然可以做这样的事情

df.iloc[[1,2,3,4,n-3,n-2,n-1,n],:]

但也许有更简单的方法可以做到这一点?

标签: python-3.xpandasdataframe

解决方案


pandas.DataFrame.iloc()可以接受您已在示例中使用的整数列表或数组。

我想打印出第一行和最后 4 行

我当然可以做这样的事情

df.iloc[[1,2,3,4,n-3,n-2,n-1,n],:]

除此之外,您还可以使用range()以下方式生成列表:

df.iloc[list(range(0, 4))+list(range(len(df.index)-4, len(df.index))), :]

您可以生成索引列表以简化过程

index = list(range(0, len(df.index)))
df.iloc[index[:4]+index[-4:], :]

pandas.DataFrame.head()pandas.DataFrame.tail()可以快速从上到下检索行。在pandas.concat()的帮助下,您可以结合这两种方法的结果:

pd.concat([df.head(4), df.tail(4)]))

iloc()也可以接受带有整数的切片对象,例如1:7. head()这可以与和具有相同的效果tail()

  • head(4)等于iloc[:4]
  • tail(4)等于iloc[-4:]
pd.concat([df.iloc[:4], df.iloc[-4:]])

推荐阅读