Wyświetl wszystkie kolumny ramek danych w notatniku Jupyter Python

109

Chcę pokazać wszystkie kolumny w ramce danych w notatniku Jupyter. Jupyter pokazuje niektóre kolumny i dodaje kropki do ostatnich kolumn, jak na poniższym obrazku:

Zrzut ekranu Juputera

Jak mogę wyświetlić wszystkie kolumny?

Michail N
źródło

Odpowiedzi:

183

Wypróbuj ustawienie wyświetlania max_columns w następujący sposób:

import pandas as pd
from IPython.display import display

df = pd.read_csv("some_data.csv")
pd.options.display.max_columns = None
display(df)

Lub

pd.set_option('display.max_columns', None)

Edycja: Pandas 0.11.0 wstecz

Jest to przestarzałe, ale w wersjach Pand starszych niż 0.11.0 max_columnsustawienie jest określone w następujący sposób:

pd.set_printoptions(max_columns=500)
Isma
źródło
Powinien działać, chyba że masz bardzo starą wersję Pand. Zaktualizowałem odpowiedź ...
Isma
5
Jeśli chcesz zmienić ustawienie tymczasowe, możesz użyć np. with pd.option_context("display.max_rows", 10, "display.max_columns", 5):(Patrz Pobieranie i opcje ustawień ).
Benjamin B.
37

Wiem, że to pytanie jest trochę stare, ale następujące działały dla mnie w notebooku Jupyter z pandami 0.22.0 i Pythonem 3:

import pandas as pd
pd.set_option('display.max_columns', <number of columns>)

Możesz zrobić to samo dla rzędów:

pd.set_option('display.max_rows', <number of rows>)

Oszczędza to importowanie IPythona i jest więcej opcji w dokumentacji pandas.set_option: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html

Hanna
źródło
1
Możesz użyć słowa kluczowego None w <liczba kolumn>, jeśli nie znasz wcześniej liczby kolumn.
kmundnic
9

Python 3.x dla dużych (ale niezbyt dużych) ramek DataFrame

Może dlatego, że mam starszą wersję pand, ale na notebooku Jupyter to działa dla mnie

import pandas as pd
from IPython.core.display import HTML

df=pd.read_pickle('Data1')
display(HTML(df.to_html()))
rsc05
źródło
Próbowałem tego, ale zrujnowało to moją sesję jupyter, która zniknęła z pamięci. Mój komputer ma dysk SSD i 8 GB pamięci RAM ...
FLBKernel
@FLBKernel to mi się nie udało, może twoja Dataframe jest dużo większa niż moja. Jakie było twoje wyjście? Czy próbowałeś innej metody i pracowałeś dla siebie? jeśli tak, podziel się swoją wiedzą. Dzięki.
rsc05
Nie znalazłem jeszcze żadnej metody, ale dam Ci znać, gdy tylko znajdę rozwiązanie tego problemu. I tak, moja Dataframe była prawdopodobnie większa, więc zwróćmy uwagę, że nie jest to zalecane dla dużych ramek Dataframe
FLBKernel
1
@FLBKernel Moja ramka danych była również duża. Ale nie wiedziałem, do jakiego stopnia może to być. Wskażę to. Dzięki!
rsc05
Mój ma 107,763 wierszy i 15 kolumn. Możemy ustalić -Może- że więcej niż około 100 tysięcy wierszy i 15 kolumn ta odpowiedź nie jest zalecana. Podoba mi się jednak „duży (ale nie za duży)” tytuł :)
FLBKernel
5

Zalecam ustawienie opcji wyświetlania w menedżerze kontekstu tak, aby dotyczyło to tylko jednego wyjścia. Jeśli chcesz również wydrukować "ładną" wersję HTML, zdefiniowałbym funkcję i wyświetlił ramkę danych dfza pomocą force_show_all(df):

from IPython.core.display import display, HTML

def force_show_all(df):
    with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'display.width', None):
        display(HTML(df.to_html()))

Jak wspominali inni, zachowaj ostrożność, aby wywoływać to tylko w ramce danych o rozsądnym rozmiarze.

Sofoniasza Grunschlag
źródło
1

możesz użyć pandas.set_option (), dla kolumny możesz określić dowolną z tych opcji

pd.set_option("display.max_rows", 200)
pd.set_option("display.max_columns", 100)
pd.set_option("display.max_colwidth", 200)

W przypadku pełnej kolumny drukowania możesz użyć w ten sposób

import pandas as pd
pd.set_option('display.max_colwidth', -1)
print(words.head())

wprowadź opis obrazu tutaj

Shaina Raza
źródło
1

Jeśli chcesz pokazać wszystkie wiersze ustawione jak poniżej

pd.options.display.max_rows = None

Jeśli chcesz pokazać wszystkie kolumny ustawione jak poniżej

pd.options.display.max_columns = None
Md. Moshfiqur Rahman Rony
źródło