如何显示 DataFrame 的前 N ​​行和后 N 行

Aug*_*sen 7 python dataframe pandas

我正在寻找同时快速预览 DataFrame 的前 N ​​行和最后 N 行的最佳方法。

我意识到我可以单独使用 df.head(N) 和 df.tail(N) 但这会返回两个 DataFrame。最好是简单地调用这两个单独的函数并将两者连接起来,还是有更简单的方法?

当前的:

df.head(5)     # first 5 rows
df.tail(5)     # last 5 rows
Run Code Online (Sandbox Code Playgroud)

期望:

df.headtail(5)     # 10 rows total
Run Code Online (Sandbox Code Playgroud)

想要将前 5 行和最后 5 行显示为单个 DataFrame,以便快速预览数据集的“范围”。

Lif*_*lex 4

pandas < 1.4.0

import pandas as pd

df = pd.DataFrame({'item': range(100)})
sliced_df = df.head(5)
sliced_df = sliced_df.append(df.tail(5))
print (sliced_df)
# output 
    item
0     0
1     1
2     2
3     3
4     4
95   95
96   96
97   97
98   98
99   99

Run Code Online (Sandbox Code Playgroud)

append在 pandas 版本 1.4.0 中已弃用,因此concat现在使用。

pandas => 1.4.0

import pandas as pd

df = pd.DataFrame({'item': range(100)})
sliced_df = pd.concat([df.head(5), df.tail(5)])
print(sliced_df)
# output 
    item
0     0
1     1
2     2
3     3
4     4
95   95
96   96
97   97
98   98
99   99
Run Code Online (Sandbox Code Playgroud)

  • 这正是我一直在寻找的。我能够将其缩短为一行,如下所示:preview = df.head(5).append(df.tail(5)) (2认同)