Joindre des DataFrames basés sur des plages de valeurs de colonnes
Dans le contexte donné, nous avons deux dataframes, df_1 et df_2, où nous devons fusionner de telle sorte que la colonne d'horodatage de df_1 se situe dans les colonnes de début et de fin de df_2.
Une approche pour y parvenir consiste à créer un index d'intervalle à partir des colonnes de début et de fin dans df_2. Nous pouvons ensuite utiliser la méthode get_loc pour obtenir l'événement correspondant pour chaque horodatage dans df_1. Voici le code Python pour cette solution :
# Create interval index from df_2 df_2.index = pd.IntervalIndex.from_arrays(df_2['start'], df_2['end'], closed='both') # Get corresponding event for each timestamp in df_1 df_1['event'] = df_1['timestamp'].apply(lambda x: df_2.iloc[df_2.index.get_loc(x)]['event'])
Cela créera une nouvelle colonne nommée event in df_1, qui contient les événements correspondants pour chaque horodatage qui se situe dans les plages spécifiées dans df_2. Le dataframe joint résultant contiendra les colonnes suivantes :
timestamp A B event
Le résultat ressemblera à :
timestamp A B event 0 2016-05-14 10:54:33 0.020228 0.026572 E1 1 2016-05-14 10:54:34 0.057780 0.175499 E2 2 2016-05-14 10:54:35 0.098808 0.620986 E2 3 2016-05-14 10:54:36 0.158789 1.014819 E2 4 2016-05-14 10:54:39 0.038129 2.384590 E3
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!