По умолчанию, как я могу просмотреть все строки в Series и / или DataFrame? - PullRequest
0 голосов
/ 23 апреля 2020

По умолчанию всякий раз, когда я просматриваю Series или DataFrame, он дает мне только первые пять строк и последние пять строк в качестве предварительного просмотра. Как мне просмотреть все строки? Есть ли способ для этого?

Например,

df[df["First Name"].duplicated()]
    First Name  Gender  Start Date  Last Login Time Salary  Bonus % Senior Management   Team
327 Aaron   Male    1994-01-29  2020-04-22 18:48:00 58755   5.097   True    Marketing
440 Aaron   Male    1990-07-22  2020-04-22 14:53:00 52119   11.343  True    Client Services
937 Aaron   NaN 1986-01-22  2020-04-22 19:39:00 63126   18.424  False   Client Services
141 Adam    Male    1990-12-24  2020-04-22 20:57:00 110194  14.727  True    Product
302 Adam    Male    2007-07-05  2020-04-22 11:59:00 71276   5.027   True    Human Resources
... ... ... ... ... ... ... ... ...
902 NaN Male    2001-05-23  2020-04-22 19:52:00 103877  6.322   True    Distribution
925 NaN Female  2000-08-23  2020-04-22 16:19:00 95866   19.388  True    Sales
946 NaN Female  1985-09-15  2020-04-22 01:50:00 133472  16.941  True    Distribution
947 NaN Male    2012-07-30  2020-04-22 15:07:00 107351  5.329   True    Marketing
951 NaN Female  2010-09-14  2020-04-22 05:19:00 143638  9.662   True    NaN

Ответы [ 3 ]

0 голосов
/ 23 апреля 2020

Вы можете изменить параметры просмотра для Jupyter следующим образом:

pd.set_option('display.max_rows', df.shape[0])
0 голосов
/ 23 апреля 2020

Альтернатива pd.set_option(). Создайте кастом l oop. L oop через фрейм данных в наборах по 60 штук или вне зависимости от того, какие максимальные строки у вас для печати. Этот подход не исключает заголовки столбцов для каждой итерации печати 60 строк, но это была забавная «альтернатива» коду и, казалось бы, жизнеспособное решение для печати большого количества строк> 100 000 или около того. Я создал случайный кадр данных с плавающей запятой длиной 100 000 строк и потребовал <1 se c для запуска. </p>

import numpy as np
import pandas as pd
import math
nrows=100000
df=pd.DataFrame(np.random.rand(nrows,4), columns=list('ABCD'))
i=0
for x in range(0,int(math.ceil(nrows/60))):
    print(df.iloc[i:i+60, :].tail(60))
    i+=60

Преимущество моего подхода зависит от того, сколько строк вы хотите показать. Я только что попробовал максимальное количество строк с помощью метода pd.set_options на 100 000 строк, и при простом вызове df (вместо print(df)) моя страница перестала отвечать. Это потому, что он создает такую ​​длинную страницу (полоса прокрутки отсутствует), но когда вы print получаете полосу прокрутки, это делает ее менее интенсивной и лучше практикует IMO для печати большого количества строк.

Ладно, так что звоните df, почему бы мне просто не перейти к максимальному пределу с помощью pd.set_option('display.max_rows', None) и сделать print(df). Разве это не сработает?

Хорошо, это сработало для 10000 строк, но я получил эту ошибку при выполнении 100000 строк.

IOPub data rate exceeded.
The notebook server will temporarily stop sending output
to the client in order to avoid crashing it.
To change this limit, set the config variable
`--NotebookApp.iopub_data_rate_limit`.

Current values:
NotebookApp.iopub_data_rate_limit=1000000.0 (bytes/sec)
NotebookApp.rate_limit_window=3.0 (secs)

Возможно, вы хотите настроить NotebookApp.iopub_data_rate_limit, но тогда это становится более техническим, и вам может потребоваться go командная строка и возиться с настройками конфигурации Превышена скорость передачи данных IOPub в ноутбуке Jupyter (при просмотре изображения)

Мое решение позволяет вам печатать все строки, не связываясь с pd.options и не редактируя эти ограничения вручную в файлах конфигурации. Конечно, опять же, это действительно зависит от того, сколько строк вы хотите напечатать на своих терминалах.

0 голосов
/ 23 апреля 2020

Это объясняется в следующей ссылке.

https://thispointer.com/python-pandas-how-to-display-full-dataframe-i-e-print-all-rows-columns-without-truncation/

Выдержка из ссылки предоставляет эти 4 варианта.

pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', -1)
...