Bei der Datenanalyse kann die Arbeit mit großen Datenrahmen oft zu Speicherfehlern führen. Um dieses Problem zu lösen, kann die Aufteilung des Datenrahmens in kleinere, überschaubare Teile eine wertvolle Strategie sein. In diesem Artikel wird untersucht, wie Sie einen großen Datenrahmen basierend auf einer bestimmten Spalte, insbesondere AcctName, effizient in Blöcke aufteilen können.
Sie können Listenverständnis verwenden, um diese Aufteilung zu erreichen:
<code class="python">import numpy as np import pandas as pd # Define the chunk size n = 200,000 # Create a list to store the chunks list_df = [] # Extract unique AcctName values AcctNames = df['AcctName'].unique() # Create a dictionary of dataframes for each AcctName DataFrameDict = {acct: pd.DataFrame for acct in AcctNames} # Split the dataframe into chunks by AcctName for acct in DataFrameDict.keys(): DataFrameDict[acct] = df[df['AcctName'] == acct] # Apply your function to the chunk trans_times_2(DataFrameDict[acct]) list_df.append(DataFrameDict[acct]) # Rejoin the chunks into a single dataframe rejoined_df = pd.concat(list_df)</code>
Alternativ können Sie dies tun Nutzen Sie die array_split-Funktion von NumPy:
<code class="python">list_df = np.array_split(df, math.ceil(len(df) / n))</code>
Dieser Ansatz erstellt eine Liste von Blöcken, auf die Sie einzeln zugreifen können.
Um den ursprünglichen Datenrahmen wieder zusammenzusetzen, verwenden Sie einfach pd.concat:
<code class="python">rejoined_df = pd.concat(list_df)</code>
Durch den Einsatz dieser Techniken können Sie Ihren großen Datenrahmen effektiv in kleinere Teile aufteilen, die erforderlichen Transformationen anwenden und die resultierenden Daten dann wieder zu einem einzigen Datenrahmen zusammensetzen. Dieser Ansatz kann die Speichernutzung erheblich reduzieren und die Effizienz Ihrer Datenverarbeitungsvorgänge verbessern.
Das obige ist der detaillierte Inhalt vonWie kann man einen großen Pandas-DataFrame nach AcctName effizient in Stücke schneiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!