Par exemple, j'ai une trame de données (DF_1) avec une colonne contenant des données texte. La deuxième trame de données (DF_2) contient des nombres. Comment puis-je vérifier si le texte contient les chiffres de la deuxième trame de données?
df_1 strong> p> df_2 strong> p> donc je veux vérifier si les entrées de [note] de df_1 contiennent les entrées de [code_number] de df_2 p> J'ai essayé d'utiliser le Code suivant: Le résultat final que je recherche après que le filtrage a été appliqué est: p> df_1 [df_1 ['Remarque']. str.contains (df_2 ['Code_Number'])] Code> Et je sais que je ne peux pas utiliser de rejoindre car je n'ai pas de clé pour vous connecter. P>
3 Réponses :
Faites ceci:
df_1.loc[df_1['Note'].apply(lambda x: any(str(number) in x for number in df_2['Code_Number']))]
J'ai donc: df_i = df_1.loc [df_1 ['Remarque']. Appliquer (Lambda X: Any (STR (numéro (numéro) dans x pour le numéro dans df_2 ['code_number'])) code> < Code> retour df_i code> mais quand j'exécute cela, il est indiqué "Syntaxe invalide"
Désolé, il y avait eu une faute de frappe, @sammywemmy a fixé. Devrait courir maintenant.
Essayez ceci et voyez s'il couvre votre cas d'utilisation: obtenez un cartésien transversien des deux colonnes, en utilisant iTERTOOLS 'Product et filtrer en fonction de la condition:
from itertools import product m = [ left for left, right in product(df.Note,df1.Code_Number) if str(right) in left] pd.DataFrame(m,columns=['Note']) Note 0 The code to this is 1003
Firstly, you have to create 1 column in your df1 where the notes are with a list of numbers that are present in the Notes and then Compare the List column of numbers with the List column of the df2 where the numbers are present(both should be in list format) #Extract Numbers from Notes a_string = "0abcadda1 11 def 23 10007" numbers = [int(word) for word in a_string.split() if word.isdigit()] print(numbers) list_test = "103,23" #Finding common element from both lists the list L1 = [2,3,4] L2 = [1,2] [i for i in L1 if i in L2] S1 = set(L1) S2 = set(L2) print(S1.intersection(S2)) #If you want to find out the common element def common_data(list1, list2): result = False # traverse in the 1st list for x in list1: # traverse in the 2nd list for y in list2: # if one common if x == y: result = True return result return result # driver code a = [1, 2, 3, 4, 5] b = [5, 6, 7, 8, 9] print(common_data(a, b)) a = [1, 2, 3, 4, 5] b = [6, 7, 8, 9] print(common_data(a, b))