Wie erweitere ich die Ausgabeanzeige, um mehr Spalten eines Pandas DataFrame anzuzeigen?

622

Gibt es eine Möglichkeit, die Anzeige der Ausgabe im interaktiven Modus oder im Skriptausführungsmodus zu erweitern?

Insbesondere benutze ich die describe()Funktion bei einem Pandas DataFrame. Wenn das DataFrame5 Spalten (Beschriftungen) breit ist, erhalte ich die gewünschten beschreibenden Statistiken. Wenn der DataFramejedoch weitere Spalten enthält, werden die Statistiken unterdrückt und so etwas zurückgegeben:

>> Index: 8 entries, count to max  
>> Data columns:  
>> x1          8  non-null values  
>> x2          8  non-null values  
>> x3          8  non-null values  
>> x4          8  non-null values  
>> x5          8  non-null values  
>> x6          8  non-null values  
>> x7          8  non-null values  

Der Wert "8" wird angegeben, unabhängig davon, ob 6 oder 7 Spalten vorhanden sind. Worauf bezieht sich die "8"?

Ich habe bereits erfolglos versucht, das IDLE-Fenster zu vergrößern und die Breitenoptionen für "IDLE konfigurieren" zu erhöhen.

Mein Ziel bei der Verwendung von Pandas describe()ist es, die Verwendung eines zweiten Programms wie Stata für grundlegende Datenmanipulationen und -untersuchungen zu vermeiden.

Rüben
quelle

Antworten:

887

Update: Pandas ab 0.23.4

Dies ist nicht erforderlich. Pandas erkennt automatisch die Größe Ihres Terminalfensters, wenn Sie dies festlegen pd.options.display.width = 0 . (Für ältere Versionen siehe unten.)

pandas.set_printoptions(...)ist veraltet. Verwenden Sie stattdessen pandas.set_option(optname, val)oder gleichwertigpd.options.<opt.hierarchical.name> = val . Mögen:

import pandas as pd
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

Hier ist das Hilfe fürset_option :

set_option (pat, value) - Legt den Wert der angegebenen Option fest

Verfügbare Optionen:
Anzeige. [chop_threshold, colheader_justify, column_space, date_dayfirst,
         date_yearfirst, encoding, expand_frame_repr, float_format, height,
         line_width, max_columns, max_colwidth, max_info_columns, max_info_rows,
         max_rows, max_seq_items, mpl_style, multi_sparse, notebook_repr_html,
         pprint_nest_depth, Präzision, Breite]
Modus. [sim_interactive, use_inf_as_null]

Parameter
----------
pat - str / regexp, das einer einzelnen Option entsprechen sollte.

Hinweis: Teilübereinstimmungen werden aus praktischen Gründen unterstützt, es sei denn, Sie verwenden die
Vollständiger Optionsname (egxyzoption_name), Ihr Code kann in Zukunft beschädigt werden
Versionen, wenn neue Optionen mit ähnlichen Namen eingeführt werden.

value - neuer Wert der Option.

Kehrt zurück
-------
Keiner

Erhöht
------ ------.
KeyError, wenn keine solche Option vorhanden ist

display.chop_threshold: [Standard: Keine] [derzeit: Keine]
: float oder None
        Wenn ein Float-Wert festgelegt ist, sind alle Float-Werte kleiner als der angegebene Schwellenwert
        wird von repr und Freunden als genau 0 angezeigt.
display.colheader_justify: [Standard: rechts] [aktuell: rechts]
: 'links rechts'
        Steuert die Ausrichtung von Spaltenüberschriften. wird von DataFrameFormatter verwendet.
display.column_space: [Standard: 12] [derzeit: 12] Keine Beschreibung verfügbar.

display.date_dayfirst: [Standard: False] [derzeit: False]
: Boolescher Wert
        Wenn True, werden Daten mit dem ersten Tag gedruckt und analysiert, z. B. am 20.01.2005
display.date_yearfirst: [Standard: False] [aktuell: False]
: Boolescher Wert
        Wenn True, werden Drucke und Analysen mit dem ersten Jahr erstellt, z. B. 2005/01/20
display.encoding: [Standard: UTF-8] [derzeit: UTF-8]
: str / unicode
        Standardmäßig wird die erkannte Codierung der Konsole verwendet.
        Gibt die Codierung an, die für von to_string zurückgegebene Zeichenfolgen verwendet werden soll.
        Dies sind im Allgemeinen Zeichenfolgen, die auf der Konsole angezeigt werden sollen.
display.expand_frame_repr: [Standard: True] [derzeit: True]
: Boolescher Wert
        Gibt an, ob der vollständige DataFrame-Repräsentant für breite DataFrames ausgedruckt werden soll
        Über mehrere Zeilen hinweg wird "max_columns" weiterhin berücksichtigt, die Ausgabe jedoch
        Wrap-Around über mehrere "Seiten", wenn die Breite "display.width" überschreitet.
display.float_format: [Standard: Keine] [derzeit: Keine]
: aufrufbar
        Der Callable sollte eine Gleitkommazahl akzeptieren und zurückkehren
        eine Zeichenfolge mit dem gewünschten Format der Nummer. Dies wird verwendet
        an einigen Orten wie SeriesFormatter.
        Ein Beispiel finden Sie unter core.format.EngFormatter.
display.height: [Standard: 60] [derzeit: 1000]
: int
        Veraltet.
        (Veraltet, verwenden Sie stattdessen `display.height`.)

display.line_width: [Standard: 80] [derzeit: 1000]
: int
        Veraltet.
        (Veraltet, verwenden Sie stattdessen "display.width".)

display.max_columns: [Standard: 20] [derzeit: 500]
: int
        max_rows und max_columns werden in __repr __ () -Methoden verwendet, um zu entscheiden, ob
        to_string () oder info () wird verwendet, um ein Objekt in einen String zu rendern. Im Falle
        Python / IPython läuft in einem Terminal, dies kann auf 0 und Pandas gesetzt werden
        erkennt die Breite des Terminals automatisch und wechselt zu einer kleineren
        Format für den Fall, dass nicht alle Spalten vertikal passen würden. Das IPython-Notizbuch,
        IPython qtconsole oder IDLE werden nicht in einem Terminal ausgeführt und sind es daher nicht
        korrekte automatische Erkennung möglich.
        Der Wert "Keine" bedeutet unbegrenzt.
display.max_colwidth: [Standard: 50] [derzeit: 50]
: int
        Die maximale Breite in Zeichen einer Spalte in der Repräsentation von
        eine Pandas-Datenstruktur. Wenn die Spalte überläuft, wird ein "..."
        Platzhalter ist in die Ausgabe eingebettet.
display.max_info_columns: [Standard: 100] [derzeit: 100]
: int
        max_info_columns wird in der DataFrame.info-Methode verwendet, um zu entscheiden, ob
        Pro Spalte werden Informationen gedruckt.
display.max_info_rows: [Standard: 1690785] [derzeit: 1690785]
: int oder None
        max_info_rows ist die maximale Anzahl von Zeilen, für die ein Frame verwendet wird
        Führen Sie eine Nullprüfung für die Spalten durch, wenn Sie eine Konsole erneut anzeigen.
        Der Standardwert beträgt 1.000.000 Zeilen. Also, wenn ein DataFrame mehr hat
        1.000.000 Zeilen Es wird keine Nullprüfung für die durchgeführt
        Spalten und damit die Darstellung wird viel weniger Zeit in Anspruch nehmen
        Anzeige in einer interaktiven Sitzung. Ein Wert von None bedeutet immer
        Führen Sie beim Repr'ing eine Nullprüfung durch.
display.max_rows: [Standard: 60] [derzeit: 500]
: int
        Dies legt die maximale Anzahl von Zeilen fest, die Pandas beim Drucken ausgeben sollen
        aus verschiedenen Ausgaben. Dieser Wert bestimmt beispielsweise, ob repr ()
        für einen Datenrahmen wird er vollständig oder nur als Zusammenfassung ausgedruckt.
        Der Wert "Keine" bedeutet unbegrenzt.
display.max_seq_items: [Standard: Keine] [derzeit: Keine]
: int oder None

        Wenn Sie eine lange Sequenz hübsch drucken, nicht mehr als "max_seq_items"
        wird gedruckt. Wenn Elemente ausgelassen werden, werden sie durch den Zusatz gekennzeichnet
        von "..." auf die resultierende Zeichenfolge.

        Bei der Einstellung Keine ist die Anzahl der zu druckenden Elemente unbegrenzt.
display.mpl_style: [Standard: Keine] [derzeit: Keine]
: bool

        Wenn Sie dies auf "Standard" setzen, werden die von matplotlib verwendeten rcParams geändert
        um Plots standardmäßig einen ansprechenderen visuellen Stil zu verleihen.
        Wenn Sie dies auf Keine / Falsch setzen, werden die Werte auf ihren Anfangswert zurückgesetzt.
display.multi_sparse: [Standard: True] [derzeit: True]
: Boolescher Wert
        MultiIndex-Anzeige "sparsify" (Anzeige nicht wiederholt
        Elemente in äußeren Ebenen innerhalb von Gruppen)
display.notebook_repr_html: [Standard: True] [derzeit: True]
: Boolescher Wert
        Wenn True, verwendet das IPython-Notizbuch die HTML-Darstellung für
        Pandas-Objekte (falls verfügbar).
display.pprint_nest_depth: [Standard: 3] [aktuell: 3]
: int
        Steuert die Anzahl der verschachtelten Ebenen, die beim hübschen Drucken verarbeitet werden sollen
display.precision: [Standard: 7] [aktuell: 7]
: int
        Gleitkomma-Ausgabegenauigkeit (Anzahl der signifikanten Stellen). Das ist
        nur ein Vorschlag
display.width: [Standard: 80] [derzeit: 1000]
: int
        Breite der Anzeige in Zeichen. Falls Python / IPython ausgeführt wird
        Ein Terminal, das auf None gesetzt werden kann, und Pandas erkennen das automatisch automatisch
        Breite.
        Beachten Sie, dass das IPython-Notizbuch, IPython qtconsole oder IDLE nicht in a ausgeführt werden
        Terminal und daher ist es nicht möglich, die Breite korrekt zu erfassen.
mode.sim_interactive: [Standard: False] [derzeit: False]
: Boolescher Wert
        Gibt an, ob der interaktive Modus zu Testzwecken simuliert werden soll
mode.use_inf_as_null: [Standard: False] [derzeit: False]
: Boolescher Wert
        True bedeutet, None, NaN, INF, -INF als null zu behandeln (alter Weg),
        False bedeutet None und NaN sind null, aber INF, -INF sind nicht null
        (neuer Weg).
Rufen Sie def: pd.set_option (self, * args, ** kwds) auf.

BEARBEITEN: Informationen zu älteren Versionen, ein Großteil davon ist veraltet.

Wie @bmu erwähnt , erkennt pandas automatisch (standardmäßig) die Größe des Anzeigebereichs. Eine Zusammenfassungsansicht wird verwendet, wenn ein Objektrepräsentant nicht auf die Anzeige passt. Sie haben erwähnt, dass die Größe des IDLE-Fensters ohne Wirkung geändert wird. Wenn ja, print df.describe().to_string()passt es in das IDLE-Fenster?

Die Terminalgröße wird bestimmt durch pandas.util.terminal.get_terminal_size()(veraltet und entfernt). Dies gibt ein Tupel zurück, das das (width, height)der Anzeige enthält. Entspricht die Ausgabe der Größe Ihres IDLE-Fensters? Möglicherweise liegt ein Problem vor (es gab eines zuvor beim Ausführen eines Terminals in Emacs).

Beachten Sie, dass es möglich ist, die automatische Erkennung zu umgehen und pandas.set_printoptions(max_rows=200, max_columns=10)niemals zur Zusammenfassungsansicht zu wechseln, wenn die Anzahl der Zeilen und Spalten die angegebenen Grenzwerte nicht überschreitet.


Die Option 'max_colwidth' hilft dabei, die nicht abgeschnittene Form jeder Spalte anzuzeigen.

TruncatedColumnDisplay

Wouter Overmeire
quelle
4
display.height: veraltet, display.heightstattdessen verwenden ... Ich bin in einer Sackgasse.
Frozen Flame
5
Heutzutage können Optionen auch als Zuweisungen zu Attributen vonpd.options z. B.pd.options.display.max_rows = 999
unutbu
2
Die Eigenschaft 'display.height' ist veraltet.
Greg M. Krsak
2
Hat bei mir in Pandas 0.23.2 nicht funktioniert.
Devinbost
6
Möglicherweise möchten Sie den option_context verwenden, damit die Optionsänderungen lokal für das Objekt sind, mit dem Sie arbeiten. Dies verhindert, dass bei Ihrem nächsten Anruf .head()oder was auch immer versehentlich 400 Seiten Junk gedruckt werden .
Mike Williamson
195

Versuche dies:

pd.set_option('display.expand_frame_repr', False)

Aus der Dokumentation:

display.expand_frame_repr: boolean

Unabhängig davon, ob der vollständige DataFrame-Repr für breite DataFrames über mehrere Zeilen hinweg ausgedruckt werden soll, wird max_columns weiterhin berücksichtigt. Die Ausgabe wird jedoch über mehrere „Seiten“ verteilt, wenn die Breite display.width überschreitet. [Standard: True] [derzeit: True]

Siehe: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.set_option.html

Robert Rose
quelle
6
Dieser arbeitet für mich. Es scheint, dass Pandas aus irgendeinem Grund die Ausgabebreite falsch berechnet und Spalten unnötig aufbricht.
Zbyszek
5
Ich muss das buchstäblich jeden Tag tun ... Gibt es eine Möglichkeit, dies irgendwo global festzulegen?
Citynorman
1
@citynorman sehen pandas\core\config_init.py, um es dauerhaft einzustellen.
Jarad
106

Wenn Sie Optionen vorübergehend festlegen möchten, um einen großen DataFrame anzuzeigen, können Sie option_context verwenden :

with pd.option_context('display.max_rows', None, 'display.max_columns', None):
    print (df)

Optionswerte werden beim Verlassen des withBlocks automatisch wiederhergestellt .

jezrael
quelle
3
Um keine Grenzen zu setzen, Nonekann verwendet werden (anstelle von 999 usw.).
Eric O Lebigot
5
with pd.option_context('display.max_rows', None, 'display.max_columns', None): print(energy)hat nicht funktioniert. Die Anzahl der Spalten, die ich sehen wollte, wurde nicht geändert. Die Lösung von Wouter Overmeiere hat jedoch funktioniert.
Aziz Javed
Aber es gibt einen Unterschied, brauche eine Zahl wie -1oder 500, keine.
Jezrael
2
Mit -1 Abstürzen und 500 hat auch nichts getan
Aziz Javed
1
+1 für den Vorschlag eines Kontextmanagers, aber -1 für den max_rowsWert;). Die Einstellung 'display.max_rows'auf -1 scheint die Formatierung völlig durcheinander zu bringen (für meine Daten kein Absturz, aber es werden bestimmte Zeilen jetzt mehrmals gedruckt).
bluenote10
88

Nur die Verwendung dieser 3 Zeilen hat bei mir funktioniert:

pd.set_option('display.max_columns', None)  
pd.set_option('display.expand_frame_repr', False)
pd.set_option('max_colwidth', -1)

Anaconda / Python 3.6.5 / pandas: 0.23.0 / Visual Studio Code 1.26

arispen
quelle
54

Stellen Sie die maximale Spaltenbreite ein mit:

pd.set_option('max_colwidth', 800)

Diese spezielle Anweisung legt die maximale Breite auf 800 Pixel pro Spalte fest.

pX0r
quelle
2
Wenn ich in absteigender Reihenfolge nach unten scrolle, ist dies die erste Antwort, die für mich funktioniert hat, damit Pandas die Klartextausgabe von DataFrames nicht abschneiden. (Pandas 0.22, iTerm2 3.0.13, OS X 10.12).
Peter Leimbigler
2
Dies ist die einzige, die für mich für Pandas 0.23.2 funktioniert hat.
Devinbost
1
Wieso mussten Sie es nicht als angeben display.max_colwidth? So ist es in der Dokumentation aufgeführt. Ich bin damit einverstanden, dass nur max_colwidthfunktioniert und kürzer zu schreiben ist, aber ich war überrascht.
cmo
26

Sie können print df.describe().to_string()erzwingen, dass die gesamte Tabelle angezeigt wird. (Sie können to_string()dies für jeden DataFrame verwenden. Das Ergebnis von describeist nur ein DataFrame selbst.)

Die 8 ist die Anzahl der Zeilen im DataFrame, die die "Beschreibung" enthalten (da describe8 Statistiken berechnet werden, min, max, mean usw.).

BrenBarn
quelle
26

Sie können die Druckoptionen für Pandas mit anpassen set_printoptions.

In [3]: df.describe()
Out[3]: 
<class 'pandas.core.frame.DataFrame'>
Index: 8 entries, count to max
Data columns:
x1    8  non-null values
x2    8  non-null values
x3    8  non-null values
x4    8  non-null values
x5    8  non-null values
x6    8  non-null values
x7    8  non-null values
dtypes: float64(7)

In [4]: pd.set_printoptions(precision=2)

In [5]: df.describe()
Out[5]: 
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
std       17.1     17.1     17.1     17.1     17.1     17.1     17.1
min    69000.0  69001.0  69002.0  69003.0  69004.0  69005.0  69006.0
25%    69012.2  69013.2  69014.2  69015.2  69016.2  69017.2  69018.2
50%    69024.5  69025.5  69026.5  69027.5  69028.5  69029.5  69030.5
75%    69036.8  69037.8  69038.8  69039.8  69040.8  69041.8  69042.8
max    69049.0  69050.0  69051.0  69052.0  69053.0  69054.0  69055.0

Dies funktioniert jedoch nicht in allen Fällen, da Pandas Ihre Konsolenbreite erkennt und nur verwendet wird, to_stringwenn die Ausgabe in die Konsole passt (siehe Dokumentzeichenfolge von set_printoptions). In diesem Fall können Sie explizit anrufen, to_stringwie von BrenBarn beantwortet .

Aktualisieren

Mit Version 0.10 hat sich die Art und Weise, wie breite Datenrahmen gedruckt werden, geändert :

In [3]: df.describe()
Out[3]: 
                 x1            x2            x3            x4            x5  \
count      8.000000      8.000000      8.000000      8.000000      8.000000   
mean   59832.361578  27356.711336  49317.281222  51214.837838  51254.839690   
std    22600.723536  26867.192716  28071.737509  21012.422793  33831.515761   
min    31906.695474   1648.359160     56.378115  16278.322271     43.745574   
25%    45264.625201  12799.540572  41429.628749  40374.273582  29789.643875   
50%    56340.214856  18666.456293  51995.661512  54894.562656  47667.684422   
75%    75587.003417  31375.610322  61069.190523  67811.893435  76014.884048   
max    98136.474782  84544.484627  91743.983895  75154.587156  99012.695717   

                 x6            x7  
count      8.000000      8.000000  
mean   41863.000717  33950.235126  
std    38709.468281  29075.745673  
min     3590.990740   1833.464154  
25%    15145.759625   6879.523949  
50%    22139.243042  33706.029946  
75%    72038.983496  51449.893980  
max    98601.190488  83309.051963  

Darüber hinaus wurde die API zum Festlegen von Pandas-Optionen geändert:

In [4]: pd.set_option('display.precision', 2)

In [5]: df.describe()
Out[5]: 
            x1       x2       x3       x4       x5       x6       x7
count      8.0      8.0      8.0      8.0      8.0      8.0      8.0
mean   59832.4  27356.7  49317.3  51214.8  51254.8  41863.0  33950.2
std    22600.7  26867.2  28071.7  21012.4  33831.5  38709.5  29075.7
min    31906.7   1648.4     56.4  16278.3     43.7   3591.0   1833.5
25%    45264.6  12799.5  41429.6  40374.3  29789.6  15145.8   6879.5
50%    56340.2  18666.5  51995.7  54894.6  47667.7  22139.2  33706.0
75%    75587.0  31375.6  61069.2  67811.9  76014.9  72039.0  51449.9
max    98136.5  84544.5  91744.0  75154.6  99012.7  98601.2  83309.1
bmu
quelle
Ich bevorzuge die von lodagro erwähnte Methode max_columns, aber ich bin froh, dass Sie das Präzisionsschlüsselwort erwähnt haben, da dies dazu beiträgt, die angezeigten Statistiken zu bereinigen. Vielen Dank!
Rüben
22

Sie können die Ausgangsanzeige so einstellen, dass sie Ihrer aktuellen Terminalbreite entspricht:

pd.set_option('display.width', pd.util.terminal.get_terminal_size()[0])
Wilfred Hughes
quelle
6
@ wouter-overmeire sagt, dass Pandas dies automatisch tut , aber das scheint nicht der Fall zu sein, zumindest nicht mit 0.18.0. Wenn Sie jedoch pd.set_option('display.width', None)in einem Terminal verwenden, "erkennt Pandas die Breite automatisch automatisch" .
Matthias Fripp
Genau! Es macht es nicht standardmäßig. Wenn Sie "Keine" aktivieren, wird die Breite überhaupt ignoriert. Vielleicht ist es ein Fehler in Pandas oder vielleicht hat es mit dem Gnomterminal zu tun ..? Danke Wilfred Hughes!
Gefahr89
3
AttributeError: Modul 'pandas.util' hat kein Attribut 'terminal'
Bhishan Poudel
1
@ BhishanPoudel Sie können dies stattdessen tun:pd.options.display.width = None
SebMa
1
@BhishanPoudel Diese Antwort ist ein paar Jahre alt und ich bin auf dasselbe Problem gestoßen wie Sie. Zum jetzigen Zeitpunkt ist das Modul mit Pandas Version 0.23.1 jetztpd.io.formats.terminal.get_terminal_size()
Ajay
13

Laut den Dokumenten für Version 0.18.0 ist es ein 2-Liner, wenn Pandas Ihre Bildschirmbreite automatisch erkennt und sich im Handumdrehen an die Anzahl der Geräte anpasst , wenn Sie auf einem Terminal (dh nicht auf einem iPython-Notebook, einer qtconsole oder einem IDLE) arbeiten Spalten, die es zeigt:

pd.set_option('display.large_repr', 'truncate')
pd.set_option('display.max_columns', 0)
hamx0r
quelle
1
Das hat bei mir funktioniert, danke! Ich verwende Pandas 0.22.0 (Stand: 8. Februar 2018) mit der integrierten Terminal-App unter OS X 10.11.6
Greg Sadetsky
8

Es scheint, als ob alle oben genannten Antworten das Problem lösen. Noch ein Punkt: Stattdessen pd.set_option('option_name')können Sie die (automatische Vervollständigung) verwenden.

pd.options.display.width = None

Siehe Pandas-Dokument: Optionen und Einstellungen:

Optionen haben einen vollständigen Namen im gepunkteten Stil, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird (z display.max_rows. B. ). Sie können Optionen direkt als Attribute des Attributs der obersten Ebene optionsabrufen / festlegen :

In [1]: import pandas as pd

In [2]: pd.options.display.max_rows
Out[2]: 15

In [3]: pd.options.display.max_rows = 999

In [4]: pd.options.display.max_rows
Out[4]: 999

[...]

für die max_...params:

max_rowsund max_columnswerden in __repr__()Methoden verwendet, um zu entscheiden, ob to_string()oder info()um ein Objekt in eine Zeichenfolge zu rendern. Wenn Python / IPython in einem Terminal ausgeführt wird, kann dies auf 0 gesetzt werden, und Pandas erkennt die Breite des Terminals automatisch und wechselt in ein kleineres Format, falls nicht alle Spalten vertikal passen. Das IPython-Notebook, die IPython-Qtconsole oder IDLE werden nicht in einem Terminal ausgeführt, und daher ist eine korrekte automatische Erkennung nicht möglich. ' None' Wert bedeutet unbegrenzt. [Hervorhebung nicht im Original]

für den widthParameter:

Breite der Anzeige in Zeichen. Wenn Python / IPython in einem Terminal ausgeführt wird, kann dies auf eingestellt werden, Noneund Pandas erkennt die Breite korrekt automatisch. Beachten Sie, dass das IPython-Notizbuch, die IPython-Qtconsole oder IDLE nicht in einem Terminal ausgeführt werden und daher die Breite nicht korrekt erkannt werden kann.

serv-inc
quelle
5
import pandas as pd
pd.set_option('display.max_columns', 100)
pd.set_option('display.width', 1000)

SentenceA = "William likes Piano and Piano likes William"
SentenceB = "Sara likes Guitar"
SentenceC = "Mamoosh likes Piano"
SentenceD = "William is a CS Student"
SentenceE = "Sara is kind"
SentenceF = "Mamoosh is kind"


bowA = SentenceA.split(" ")
bowB = SentenceB.split(" ")
bowC = SentenceC.split(" ")
bowD = SentenceD.split(" ")
bowE = SentenceE.split(" ")
bowF = SentenceF.split(" ")

# Creating a set consisted of all words

wordSet = set(bowA).union(set(bowB)).union(set(bowC)).union(set(bowD)).union(set(bowE)).union(set(bowF))
print("Set of all words is: ", wordSet)

# Initiating dictionary with 0 value for all BOWs

wordDictA = dict.fromkeys(wordSet, 0)
wordDictB = dict.fromkeys(wordSet, 0)
wordDictC = dict.fromkeys(wordSet, 0)
wordDictD = dict.fromkeys(wordSet, 0)
wordDictE = dict.fromkeys(wordSet, 0)
wordDictF = dict.fromkeys(wordSet, 0)

for word in bowA:
    wordDictA[word] += 1
for word in bowB:
    wordDictB[word] += 1
for word in bowC:
    wordDictC[word] += 1
for word in bowD:
    wordDictD[word] += 1
for word in bowE:
    wordDictE[word] += 1
for word in bowF:
    wordDictF[word] += 1

# Printing Term frequency

print("SentenceA TF: ", wordDictA)
print("SentenceB TF: ", wordDictB)
print("SentenceC TF: ", wordDictC)
print("SentenceD TF: ", wordDictD)
print("SentenceE TF: ", wordDictE)
print("SentenceF TF: ", wordDictF)

print(pd.DataFrame([wordDictA, wordDictB, wordDictB, wordDictC, wordDictD, wordDictE, wordDictF]))

Ausgabe:

   CS  Guitar  Mamoosh  Piano  Sara  Student  William  a  and  is  kind  likes
0   0       0        0      2     0        0        2  0    1   0     0      2
1   0       1        0      0     1        0        0  0    0   0     0      1
2   0       1        0      0     1        0        0  0    0   0     0      1
3   0       0        1      1     0        0        0  0    0   0     0      1
4   1       0        0      0     0        1        1  1    0   1     0      0
5   0       0        0      0     1        0        0  0    0   1     1      0
6   0       0        1      0     0        0        0  0    0   1     1      0
William Pourmajidi
quelle
Sie brauchen nur diese beiden: (Überprüfen Sie das obige Beispiel) Importieren Sie Pandas als pd pd.set_option ('display.max_columns', 100) pd.set_option ('display.width', 1000)
William Pourmajidi
4

Ich habe diese Einstellungen verwendet, wenn der Datenumfang hoch ist.

# environment settings: 
pd.set_option('display.max_column',None)
pd.set_option('display.max_rows',None)
pd.set_option('display.max_seq_items',None)
pd.set_option('display.max_colwidth', 500)
pd.set_option('expand_frame_repr', True)

Die Dokumentation finden Sie hier

debaonline4u
quelle
4

Die folgende Zeile reicht aus, um alle Spalten aus dem Datenrahmen anzuzeigen. pd.set_option('display.max_columns', None)

Zeeshan
quelle
1
Willkommen bei SO! Wenn Sie eine neue Antwort auf eine Frage veröffentlichen und weitere Antworten vorliegen, versuchen Sie, die Vorteile anzuzeigen. Es gibt noch eine Antwort. pd.set_option('display.max_columns', 0)Welche sind Ihre Vorteile?
David García Bodego
3

Wenn Sie sich nicht mit Ihren Anzeigeoptionen herumschlagen möchten und nur diese eine bestimmte Liste von Spalten anzeigen möchten, ohne jeden angezeigten Datenrahmen zu erweitern, können Sie Folgendes versuchen:

df.columns.values
Sind auch
quelle
2

Sie können es auch in einer Schleife versuchen:

for col in df.columns: 
    print(col) 
Das Leben ist wunderschoen
quelle
2

Sie können einfach die folgenden Schritte ausführen:

  • Sie können die Optionen für die Funktion pandas max_columns wie folgt ändern

    import pandas as pd
    pd.options.display.max_columns = 10

    (Dadurch können 10 Spalten angezeigt werden. Sie können dies nach Bedarf ändern.)

  • Auf diese Weise können Sie die Anzahl der Zeilen wie folgt ändern (wenn Sie auch die maximale Anzahl der Zeilen ändern müssen).

    pd.options.display.max_rows = 999

    (Dies ermöglicht das Drucken von 999 Zeilen gleichzeitig)

Bitte beziehen Sie sich auf das Dokument , um verschiedene Optionen / Einstellungen für Pandas zu ändern

Amila Viraj
quelle