I want to do the following merge (hard to describe in words): This are my Dataframes
df8=pd.DataFrame({\'names\':[[\'Hans\',\'Meier\'],[\'Debby\',\'Harry\',\'Pet
df8['content']= df8['names'].apply(lambda x: [df9.loc[name,'text'][0] for name in x])
This return an error if there is a name that isn't found in df9
. You can make it more robust with
df8['content']= df8['names'].apply(lambda x: [df9['text'].get(name)[0] if df9['text'].get(name) else None for name in x])
This will have a list that contains the text for every name found, and None
for any name not found.
If all you're using df9
for is as a look-up table, then it would be more appropriate to store it as a dictionary, in which case it would be
df8['content']= df8['names'].apply(lambda x: [my_dict.get(name)[0] if my_dict.get(name) else None for name in x])