python-3.x - 如何从熊猫的数据框中获取特定行
问题描述
如果问题很愚蠢,我想提前道歉,但是如何从数据框中获取一些特定的行?
例如,给我一个包含 n 行的数据框,我想打印出第一行和最后 4 行。我当然可以做这样的事情
df.iloc[[1,2,3,4,n-3,n-2,n-1,n],:]
但也许有更简单的方法可以做到这一点?
解决方案
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:]])
推荐阅读
- linux - 如何在 bash shell 脚本中使用 sed 和 egrep
- dll - 与 Python 的 USB 通信(Newport Instrument)
- javascript - 使用 OpenLayers 模糊地图
- android - OnCompleteListener 内部的局部变量不会改变
- node.js - Node.js & Semantic UI:如何使用通过 Npm 安装的 Semantic UI?
- php - 选择字段未通过 Ajax 填充
- sql - 如何轻松列出 BigQuery 中的列
- xml - Logstash 从 xml 消息中删除前缀
- linux - `linux_binfmt` 类型的对象是否也描述了已注册的自定义可执行格式?
- hibernate - OneToMany & ManyToOne 映射 JPA / Hibernate