pandas wurde am 28. Juli 2020 von Version 1.0 auf 1.1.0 aktualisiert. Dieser Artikel fasst die wichtigsten Ergänzungen von 1.1.0 und die wichtigsten Ergänzungen des N-ten Gebräus zusammen, jedoch die Aktualisierung von 0.25.3 auf 1.0.0 im Januar 2020.
Offizielle Informationen
https://pandas.pydata.org/pandas-docs/dev/whatsnew/v1.0.0.html
https://pandas.pydata.org/pandas-docs/dev/whatsnew/v1.1.0.html
Bitte beziehen Sie sich auf.
Version 1.0 wird mit 1.0.5 und 1.1 mit 1.0.0 verifiziert. 0,25 wird mit 0,25,1 verifiziert.
1.0
pd.NA Bis zu 0,25 gibt es verschiedene Werte wie "np.nan" für float, "np.nan" oder "None" für Objekt (Zeichenfolge) und "pd.NaT" für Zeitdaten. Es wurde benutzt.
In 1.0 wurde "pd.NA" eingeführt, um fehlende Werte darzustellen.
Zum Beispiel
pd.Series([1, 2, None], dtype="Int64")
Das dritte Element von ist "np.nan" in Version 0.25, wird jedoch in 1.0 zu "pd.NA".
Bis 0.25 wurde die numerische Spalte mit fehlendem (np.nan) gezwungen, float64 zu verwenden, aber in 1.0 ist es möglich, sie als Spalte vom Typ Int8 mit pd.NA zu bezeichnen.
Ein Typ-String-Typ (StringD-Typ), der die Serie (DataFrame-Spalte) von String-Daten darstellt, wurde hinzugefügt. Wenn Sie mit einer Reihe (oder Spalte) einer Zeichenfolge arbeiten, wird empfohlen, den Zeichenfolgentyp zu verwenden.
Bis zu 0,25 war es der Objekttyp, der die Serie (oder Spalte) darstellte, die Zeichenfolgendaten enthielt
pd.Series(['abc', True, 'def'], dtype="object")
Ich konnte nur ausdrücken, dass (Mischung aus Buchstaben und Booleschen) erlaubt war,
Ab 1.0
pd.Series(['abc', 'def'], dtype="string")
In diesem Fall ist die Reihe (oder Spalte) nur für Zeichenfolgen zulässig.
pd.Series(['abc', True, 'def'], dtype="string")
Ist ein Fehler.
pd.Series(['abc', 'def', None], dtype="string")
Das dritte Element von ist "pd.NA".
jedoch
pd.Series(['abc', True, 'def'])
(Kein dtype angegeben) ist der Objekttyp wie zuvor, und dieser Ausdruck ist ebenfalls zulässig.
Es wurde ein boolescher Typ (booleanDtype) hinzugefügt, der boolesche Daten darstellt. Es wird empfohlen, den booleschen Typ zu verwenden, wenn boolesche (True oder False) Serien (oder Spalten) verwendet werden.
pd.Series([True, False, 0], dtype="booleal")
Ist ein Fehler. (Wenn kein dtype angegeben ist, ist dies ohne Fehler akzeptabel. Wenn `dtype =" bool ", wird 0 in False konvertiert.)
In Bezug auf den Umgang mit fehlendem Wert
pd.Series([True, False, np.nan])
pd.Series([True, False, None])
Das dritte Element von ist np.nan bzw. None.
pd.Series([True, False, np.nan], dtype="boolean")
pd.Series([True, False, None], dtype="boolean")
Dann ist das dritte Element pd.NA.
pd.Series([True, False, np.nan], dtype="bool")
pd.Series([True, False, None], dtype="bool")
Im Fall von ist das dritte Element Wahr bzw. Falsch.
df = pd.DataFrame({'x': ['abc', None, 'def'],
'y': [1, 2, np.nan],
'z': [True, False, True]})
Ist Spalte x: Objekt, Spalte y: float64, Spalte z: bool. Obwohl der String-Typ und der Boolesche Typ erstellt wurden ...
Deshalb,
df.convert_dtypes()
Dann werden x-Spalte: Zeichenfolge, y-Spalte: Int64, z-Spalte: Boolescher Wert konvertiert. None und np.nan sind jetzt pd.NA.
Die obigen NA- und Typfunktionen sind experimentelle Funktionen und können sich ändern.
Das Argument ignore_index wurde zu "DataFrame.sort_values ()" und "DataFrame.drop_duplicates ()" hinzugefügt. Mit ignore_index = True werden Indizes wie nach dem Sortieren in der Reihenfolge von 0 neu zugewiesen. Gute Nachrichten für Pandas Index Ärger.
1.1
dtype="string", astype("string")
pd.Series([1, "abc", np.nan], dtype="string")
pd.Series([1, 2, np.nan], dtype="Int64").astype("string")
Alle Elemente sind in Zeichenfolgen. Bis 1.0 tritt ein Fehler auf, wenn nicht alle Elemente Strings oder Nan sind.
groupby
df = pd.DataFrame([[1, 2, 3], [1, None, 4], [2, 1, 3], [1, 2, 2]], columns=["a", "b", "c"])
df.groupby(by=["b"], dropna=False).sum()
Das Ergebnis von
a c
b
1.0 2 3
2.0 2 5
NaN 1 4
Und selbst wenn der durch von angegebene Spaltenwert zur NA-Zeile hinzugefügt wird, wird er aggregiert. Verhalten ähnlich dem von R's dplyr group_by.
Wenn dropna = True
oder nicht angegeben ist, werden die Zeilen, deren durch angegebener Spaltenwert NA ist, nicht aggregiert.
Recommended Posts