我有一个框架,在某些情况下可能会增长到大量列. 有时,这个数量的列会增加到无法显示的程度. 我想做的是说,框架可能不超过16列,如果它确实存在,则只需截断额外的列.

Pandas有一个截断功能. 默认情况下,它适用于行,但也可以适用于列. 假设A和B都是框架中的列,看起来像df.truncate(before="A", after="B", axis="columns"). 然而,如果我 Select df.truncate(before=1, after=16, axis="columns"),我就会遇到切片问题,因为它显然需要列名.

是否有一种方法可以在不知道或关心列名称的情况下删除额外的列? 这很重要,因为它是通用代码,可以用于不同但相关的数据.

我try 使用截断函数,并希望能够通过固定的常数限制列数.

推荐答案

如果您的列名唯一,则可以使用:

df.truncate(before=df.columns[1], after=df.columns[16], axis="columns")

请记住,Python索引从0开始.

示例:

df = pd.DataFrame([range(5)], columns=list('ABCDE'), index=[0])

#    A  B  C  D  E
# 0  0  1  2  3  4

out = df.truncate(before=df.columns[1], after=df.columns[3], axis="columns")

#    B  C  D
# 0  1  2  3

请注意,您也可以使用iloc:

out = df.iloc[:, 1:16+1]

Python相关问答推荐

使用decorator 自动继承父类

定义同侪组并计算同侪组分析

如何在不使用字符串的情况下将namedtuple属性传递给方法?

Numpy索引argsorted使用integer数组,同时保留排序顺序

自定义新元未更新参数

创建带有二维码的Flask应用程序,可重定向到特定端点

在Pandas 日历中插入一行

配置Sweetviz以分析对象类型列,而无需转换

使用mySQL的SQlalchemy过滤重叠时间段

try 在树叶 map 上应用覆盖磁贴

删除任何仅包含字符(或不包含其他数字值的邮政编码)的观察

抓取rotowire MLB球员新闻并使用Python形成表格

如何在虚拟Python环境中运行Python程序?

如何在Raspberry Pi上检测USB并使用Python访问它?

在含噪声的3D点网格中识别4连通点模式

如何在表中添加重复的列?

在Python中调用变量(特别是Tkinter)

使用Python查找、替换和调整PDF中的图像'

Python Pandas—时间序列—时间戳缺失时间精确在00:00

我对这个简单的异步者的例子有什么错误的理解吗?