Créer une fonction applicable sur un dataframe
yakak
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
pour un projet d'école, je cherche à créer une fonction qui me permet de comparer deux colonnes d'un dataframe: en fait dans une colonne (heurext) j'ai beaucoup plus de valeurs que dans la deuxième et je veux garder uniquement les valeurs de (heurext) les plus proches de (heurint)
sauf qu'il s'agit d'heures (17:38) et que toutes mes naïves tentatives ont échoués:
def find_nearest(array,cv):
for value in cv:
idx = np.searchsorted(array, value, side="left")
if math.fabs(value - array[idx-1]) < math.fabs(value - array[idx]):
return (array[idx-1], array[idx])
df["heurext"]=df["heurint","heurext"].apply(find_nearest)
avec df mon tableau de valeur, deja je ne sais pas comment traduire les arguments array et cv (que j'ai mis dans ["heurint","heurext"] )
Est ce que quelqu'un à des pistes s'il vous plaît ;(
J'ai essayé d'être clair mais c'est difficile, désolée.
pour un projet d'école, je cherche à créer une fonction qui me permet de comparer deux colonnes d'un dataframe: en fait dans une colonne (heurext) j'ai beaucoup plus de valeurs que dans la deuxième et je veux garder uniquement les valeurs de (heurext) les plus proches de (heurint)
sauf qu'il s'agit d'heures (17:38) et que toutes mes naïves tentatives ont échoués:
def find_nearest(array,cv):
for value in cv:
idx = np.searchsorted(array, value, side="left")
if math.fabs(value - array[idx-1]) < math.fabs(value - array[idx]):
return (array[idx-1], array[idx])
df["heurext"]=df["heurint","heurext"].apply(find_nearest)
avec df mon tableau de valeur, deja je ne sais pas comment traduire les arguments array et cv (que j'ai mis dans ["heurint","heurext"] )
Est ce que quelqu'un à des pistes s'il vous plaît ;(
J'ai essayé d'être clair mais c'est difficile, désolée.
Configuration: Windows / Chrome 100.0.4896.127
A voir également:
- Créer une fonction applicable sur un dataframe
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Fonction si et - Guide
- Créer un compte instagram sur google - Guide
- Créer un lien pour partager des photos - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
peut-être peux-tu donner un exemple?
quand tu partages du code, sois attentif à utiliser les balises: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
peut-être peux-tu donner un exemple?
quand tu partages du code, sois attentif à utiliser les balises: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ah je savais pas merci!
Par exemple j'ai les colonnes suivantes:
(1): [17:02 , 18:58 , 20:36 , 21:12 , 07:47 , 10:56]
(2): [17:32 , 21:23]
et du coup je veux garder uniquement pour chaque heure de la colonne (2), l'heure la plus proche dans (1) ou bien les deux valeurs qui l'encadrent:
soit
(1'): 17:02 , 20:36
ou
(1''): 17:02, 18:58, 20:36, 21:12
c'est la deuxieme option que j'avais essayé dans le code (remis avec balises):
Merci beaucoup.
Par exemple j'ai les colonnes suivantes:
(1): [17:02 , 18:58 , 20:36 , 21:12 , 07:47 , 10:56]
(2): [17:32 , 21:23]
et du coup je veux garder uniquement pour chaque heure de la colonne (2), l'heure la plus proche dans (1) ou bien les deux valeurs qui l'encadrent:
soit
(1'): 17:02 , 20:36
ou
(1''): 17:02, 18:58, 20:36, 21:12
c'est la deuxieme option que j'avais essayé dans le code (remis avec balises):
def find_nearest(array,cv): for value in cv: idx = np.searchsorted(array, value, side="left") if math.fabs(value - array[idx-1]) < math.fabs(value - array[idx]): return (array[idx-1], array[idx]) df["heurext"]=df["heurint","heurext"].apply(find_nearest)
Merci beaucoup.