python - 是否有 pandas 函数来显示前/后 n 列,如 .head() 和 .tail()?

标签 python pandas

我喜欢在 pandas 中使用 .head().tail() 函数来间接显示一定数量的行(有时我想要更少,有时我想要更多的!)。但是有没有办法对 DataFrame 的列执行此操作?

是的,我知道我可以更改显示选项,如: pd.set_option('display.max_columns', 20)

但这太笨重了,不能一直在运行中更改,而且无论如何,它只会替换 .head() 功能,而不是 .tail() 功能。

我也知道这可以使用访问器来完成: yourDF.iloc[:,:20] 模拟 .head(20) 和 yourDF.iloc[:,-20:] 模拟 .tail(20)。

它可能看起来像一小段代码,但老实说,它不像我使用 .head() 时那样直观和快速。

有这样的命令吗?我找不到!

最佳答案

不,Pandas 不提供此类方法,但您自己制作这些方法很容易:

import pandas as pd
def front(self, n):
    return self.iloc[:, :n]

def back(self, n):
    return self.iloc[:, -n:]

pd.DataFrame.front = front
pd.DataFrame.back = back

df = pd.DataFrame(np.random.randint(10, size=(4,10)))

因此现在所有 DataFrame 将拥有这些方法:

In [272]: df.front(4)
Out[272]: 
   0  1  2  3
0  2  5  2  8
1  9  9  1  3
2  7  0  7  4
3  8  3  9  2

In [273]: df.back(3)
Out[273]: 
   7  8  9
0  3  2  7
1  9  9  4
2  5  7  1
3  3  2  5

In [274]: df.front(4).back(2)
Out[274]: 
   2  3
0  2  8
1  1  3
2  7  4
3  9  2

如果您将代码放入实用程序模块中,例如 utils_pandas.py,那么您可以使用 import 语句激活它:

import utils_pandas

关于python - 是否有 pandas 函数来显示前/后 n 列,如 .head() 和 .tail()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30608310/

相关文章:

python - 包含 keras 模型的深度复制类

python - 如何更好地管理我在 Pandas 中的内存使用?

python - 将多列转换为一行 (Pandas/Numpy)

python - 解析器错误: Error tokenizing data C error

pandas - 使用 Apache Arrow 将 PySpark DataFrame 转换为 Pandas

python - Keras Python自定义损失函数给出张量(绝对差)的最大值?

python - 遇到问题 - 类 'pandas.core.indexing._AtIndexer'

从不处理信号的 bash 脚本中调用的 Python 脚本

python - 从 MySQL 将数字数据加载到 python/pandas/numpy 数组的最快方法

python - python SyntaxError : unexpected EOF while parsing