Je fais un projet avec Jupyter Notebook. Je crée ici un exemple simplifié à l'extrême.

J'ai une URL, disons

url=www.instagram.com/alex

J'ai besoin de créer une base de données en ajoutant la fonction url avec replace dans la colonne adjacente aux noms Et j'ai une trame de données pandas

Names
John
Cherry 
nancy

Résultats recherchés en utilisant la fonction

Names    url
John     wwww.instagram.com/john
Cherry   www.instagram.com/cherry
nancy    www.instagram.com/nancy

Ce que je fais c'est:

data["url"] = url
w = data.names.values
def replace()
   for i in w,data.iteritems:
      for j in range(len(data.url),data.iteritems:
         data["url"]=url.replace("alex",i(j))
         return data

Cela génère une erreur selon laquelle je ne peux pas utiliser range comme indices ... j'ai donc essayé beaucoup de choses pour utiliser des entiers, mais cela ne me donne toujours pas les résultats jusqu'à ce que je mette manuellement i (0) ou i (1) ou i (3) Si j'essaye d'en ajouter une autre pour la ligne comme

for w in range(len(data.url):

Et est-ce que je (w) .. Ensuite, tout change en i (0) qui dans cet exemple sera www.instagram.com/john

J'ai utilisé un exemple simplifié pour mon problème, dans mon projet, il est très important de créer une fonction car l'URL est trop grande et les noms sont saisis (l'utilisateur sélectionne), c'est pourquoi je dois créer une fonction

-3
Alex aman 30 août 2020 à 09:28

2 réponses

Meilleure réponse

Veuillez vérifier ci-dessous:

df['url'] = df['Name'].apply(lambda x : url.replace('alex',x.lower()))
1
Dhiraj Bansal 30 août 2020 à 07:06
data["url"] = "www.instagram.com/" + data["Names"].str.lower()
1
Nikos_N 30 août 2020 à 06:33