Énoncé du problème
La fusion de plusieurs dataframes peut être une tâche ardue, en particulier lorsque les dataframes varient formes et structures. L'approche la plus courante consiste à utiliser la fonction merge() de manière itérative, ce qui peut devenir complexe et illisible pour un grand nombre de dataframes.
Question
Comment fusionner plusieurs des dataframes basées sur une colonne commune de manière efficace et élégante sans recourir à la récursivité ou à la complexité itérateurs ?
Réponse
La fonction reduce() fournit une alternative à la récursivité pour fusionner plusieurs trames de données. La fonction réduire() applique de manière itérative une fonction à une liste d’éléments, la réduisant à une seule valeur. Dans ce cas, la fonction est la fonction merge() et la liste des éléments est la liste des dataframes.
import pandas as pd from functools import reduce # Load dataframes df1 = pd.read_csv('dataframe1.csv') df2 = pd.read_csv('dataframe2.csv') df3 = pd.read_csv('dataframe3.csv') # Create a list of dataframes dataframes = [df1, df2, df3] # Merge dataframes df_merged = reduce(lambda left, right: pd.merge(left, right, on='date', how='outer'), dataframes)
Explication
La réduction() La fonction est appelée avec la fonction pd.merge comme premier argument et la liste des trames de données comme second. La fonction pd.merge() fusionne deux trames de données et la fonction réduire() fusionne de manière itérative le résultat avec la trame de données suivante dans la liste, réduisant la liste à une seule trame de données fusionnée.
Le on='date' L'argument spécifie que la fusion doit être effectuée en fonction de la colonne « date », qui est supposée être commune à toutes les trames de données. Le paramètre how='outer' indique que toutes les lignes des deux dataframes doivent être incluses dans le dataframe fusionné, qu'elles aient ou non des valeurs correspondantes pour la colonne « date ». Cela garantit que toutes les lignes avec la même valeur de date sont fusionnées en une seule ligne.
Résultat
La variable df_merged contient désormais une trame de données fusionnée avec toutes les données du trames de données individuelles, avec les lignes correspondantes de chaque trame de données alignées en fonction de la colonne « date ». Cette méthode est efficace, flexible et facile à lire, ce qui en fait une solution idéale pour fusionner un grand nombre de trames de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!