J'ai un ensemble de données avec 19 colonnes et environ 250k lignes. J'ai travaillé avec de plus grands ensembles de données, mais cette fois, les Pandas ont décidé de jouer avec mes nerfs.
J'ai essayé de diviser le jeu de données d'origine en 3 sous-cadres de données en fonction de quelques règles simples. Cependant, l'exécution du code prend beaucoup de temps. Environ 15-20 secondes juste pour le filtrage.
Une autre façon d'améliorer les performances du code?
import pandas as pd
#read dataset
df = pd.read_csv('myData.csv')
#create a dataframe with col1 10 and col2 <= 15
df1 = df[(df.col1 == 10) & (df.col2 <= 15)]
df = df[~df.isin(df1)].dropna()
#create a dataframe with col3 7 and col4 >= 4
df2 = df[(df.col3 == 7) & (df.col4 >= 4)]
df = df[~df.isin(df2)].dropna()
Au final, j'ai les df1, df2, df
dataframes avec les données filtrées.