我需要多次检查df.head()
和df.tail()
。
使用df.head(), df.tail()
时,jupyter笔记本会显示难看的输出。
是否有任何一行命令,因此我们只能选择前5行和后5行:
类似的东西:
df.iloc[:5 | -5:] ?
测试示例:
df = pd.DataFrame(np.random.rand(20,2))
df.iloc[:5]
更新
丑陋但可行的方法:
df.iloc[(np.where( (df.index < 5) | (df.index > len(df)-5)))[0]]
or,
df.iloc[np.r_[np.arange(5), np.arange(df.shape[0]-5, df.shape[0])]]
答案 0 :(得分:2)
尝试看看numpy.r_
df.iloc[np.r_[0:5, -5:0]]
Out[358]:
0 1
0 0.899673 0.584707
1 0.443328 0.126370
2 0.203212 0.206542
3 0.562156 0.401226
4 0.085070 0.206960
15 0.082846 0.548997
16 0.435308 0.669673
17 0.426955 0.030303
18 0.327725 0.340572
19 0.250246 0.162993
head
+ tail
也不错
df.head(5).append(df.tail(5))
Out[362]:
0 1
0 0.899673 0.584707
1 0.443328 0.126370
2 0.203212 0.206542
3 0.562156 0.401226
4 0.085070 0.206960
15 0.082846 0.548997
16 0.435308 0.669673
17 0.426955 0.030303
18 0.327725 0.340572
19 0.250246 0.162993
答案 1 :(得分:1)
.SaveChanges
这是查询索引的一种方法。您可以将值更改为所需的任何值。
答案 2 :(得分:1)
另一种方法(按this个帖子)
.isin()
生成一些虚拟/演示数据
df = pd.DataFrame({'a':range(10,100)})
print(df.head())
a
0 10
1 11
2 12
3 13
4 14
print(df.tail())
a
85 95
86 96
87 97
88 98
89 99
print(df.shape)
(90, 1)
生成所需索引列表
ls = list(range(5)) + list(range(len(df)-5, len(df)))
print(ls)
[0, 1, 2, 3, 4, 85, 86, 87, 88, 89]
使用索引列表切片DataFrame
df_first_last_5 = df[df.index.isin(ls)]
print(df_first_last_5)
a
0 10
1 11
2 12
3 13
4 14
85 95
86 96
87 97
88 98
89 99