sdf = sdf['Name1'].apply(lambda x: tryLookup(x, tdf))
tryLookup
est une fonction qui prend actuellement une chaîne, qui est la valeur de Name1
dans la colonne sdf. Nous mappons la fonction en appliquant à chaque ligne dans le DataFrame sdf
.Pandas renvoie DataFrame à partir de la fonction apply?
Au lieu de revenir tryLookup
juste une chaîne, est-il un moyen pour tryLookup
de retourner une trame de données que je veux fusionner avec le sdf
dataframe? tryLookup
a quelques informations supplémentaires, et je veux inclure cela dans les résultats en les ajoutant en tant que nouvelles colonnes à toutes les lignes sdf
.
Ainsi, le retour de tryLookup
est en tant que tel:
return pd.Series({'BEST MATCH': bestMatch, 'SIMILARITY SCORE': humanScore})
J'ai essayé quelque chose comme
sdf = sdf.merge(sdf['Name1'].apply(lambda x: tryLookup(x, tdf)), left_index=True, right_index=True)
Mais que juste lancers francs
Traceback (most recent call last):
File "lookup.py", line 160, in <module>
main()
File "lookup.py", line 40, in main
sdf = sdf.merge(sdf['Name1'].apply(lambda x: tryLookup(x, tdf)), left_index=True, right_index=True)
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 4618, in merge
copy=copy, indicator=indicator)
File "C:\Python27\lib\site-packages\pandas\tools\merge.py", line 58, in merge
copy=copy, indicator=indicator)
File "C:\Python27\lib\site-packages\pandas\tools\merge.py", line 473, in __init__
'type {0}'.format(type(right)))
ValueError: can not merge DataFrame with instance of type <class 'pandas.core.series.Series'>
Toute aide serait grande. Merci.
Vous cherchez 'pd.lookup' https: //pandas.pydata.org/pandas-docs/stable /generated/pandas.DataFrame.lookup.html – Wen