如何只打印前 5 个和后 5 个?

How to print only the first and last 5?

我想打印我的一个热编码数据的前 5 个和后 5 个。代码如下。当它打印时,第一个和最后一个 30 被打印出来。

Code:

from random import randint
import pandas_datareader.data as web
import pandas as pd
import datetime 
import itertools as it
import numpy as np
import csv

df = pd.read_csv('C:Users\GrahamFam\Desktop\Data Archive\Daily3mid(Archive).txt')
df.columns = ['Date','b1','b2','b3']
df = df.set_index('Date')

reversed_df = df.iloc[::-1]

n=5
#print(reversed_df.drop(df.index[n:-n]))

df = pd.read_csv('C:Users\GrahamFam\Desktop\Data Archive\Daily3eve(Archive).txt')
df.columns = ['Date','b1','b2','b3']
df = df.set_index('Date')

reversed_df = df.iloc[::-1]

n=5
print(reversed_df.drop(df.index[n:-n]),("\n"))

BallOne = pd.get_dummies(reversed_df.b1)
BallTwo = pd.get_dummies(reversed_df.b2)
BallThree = pd.get_dummies(reversed_df.b3)
print(BallOne)
print(BallTwo)
print(BallThree)

您可以使用headtail函数。您可以阅读它们 here

>>> DataFrame.head(n) 
>>> DataFrame.tail(n)

其中 n 是编号。你想要的元素

如果你可以在头前显示尾巴,那么可以使用np.r_从负到正的切片:

import pandas as pd
import numpy as np
df = pd.DataFrame(list(range(30)))

df.iloc[np.r_[-3:3]]
#     0
#27  27
#28  28
#29  29
#0    0
#1    1
#2    2

否则显式切片:

n = 3
l = len(df)
df.iloc[np.r_[0:n, l-n:l]]
#     0
#0    0
#1    1
#2    2
#27  27
#28  28
#29  29