trennen comma-getrennte Pandas DataFrame-Streicher in separate Reihen
In Pandas-Datenrahmen müssen häufig ein oder mehr Spalten aufgeteilt werden (CSV). Um dies zu erreichen, können mehrere Ansätze angewendet werden:
unter Verwendung von Series.explode () oder DataFrame.explode () :
Diese Methode ist in Pandas 0.25.0 und darüber verfügbar und ist speziell für die Explodierung von Listen-Listen-Listen-Listen-Listen-Listen verfügbar columns.
df.explode('column_name')
Using a Vectorized Function:
For situations involving multiple normal and multiple list columns, a vectorized function can provide a more versatile solution.
def explode(df, lst_cols, fill_value='', preserve_index=False): # ... (implementation details)
konvertieren CSV -Zeichenfolgen in Listen :
Wenn das Ziel ausschließlich dazu besteht, CSV -Saiten in Listen zu konvertieren, kann dies durch Aufteilen der Strings mit Str.SPLIT (). df ['var1']. str.split (',')
df['var1'] = df['var1'].str.split(',')benutzerdefinierter vektorisierter Ansatz
: Dieser Ansatz kann mehrere Spalten umgehen, einschließlich normaler und lister Kolumnen. col: np.repeat (x [col] .Values, x [lst_col] .str.len ()) für Col in X.Columns.Difference ([LST_COL]) }). beauftragt (** {lst_col: np.concatenate (x [lst_col] .values)}) [x.columns.tolist ()]
Legacy -Lösung
exploded_df = pd.DataFrame({ col: np.repeat(x[col].values, x[lst_col].str.len()) for col in x.columns.difference([lst_col]) }).assign(**{lst_col: np.concatenate(x[lst_col].values)})[x.columns.tolist()]
und eine frühere Methode. .Reset_index (), um die CSV-Zeichenfolgen aufzuteilen und sie in einzelne Zeilen zu stapeln. Diese Ansätze bieten verschiedene Optionen für die Aufteilung von Kommas getrennten Zeichenfolgen in Pandas-Datenfreams, die auf bestimmte Anforderungen und Leistungsüberlegungen gerecht werden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3