Как напечатать только первые и последние 5?

#python #pandas #one-hot-encoding

#python #панды #one-hot-encoding

Вопрос:

Я хотел бы распечатать первые и последние 5 из моих данных one hot encoding. Код приведен ниже. При печати печатаются первые и последние 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:UsersGrahamFamDesktopData ArchiveDaily3mid(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:UsersGrahamFamDesktopData ArchiveDaily3eve(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)
  

Комментарии:

1. Да, извините, я это исправлю.

2. print(df.head(5)) и print(df.tail(5)) ?

3. Похоже print(pd.concat([df.head(5), df.tail(5)])) , вы получите результат, который вы ищете.

Ответ №1:

Вы можете использовать функцию head and tail . Вы можете прочитать о них здесь

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

где n — количество элементов, которые вы хотите

Ответ №2:

Если у вас все в порядке с отображением хвоста перед заголовком, тогда вы можете использовать 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