DF5
def loan_cap(row):
if pd.notnull(row['award_id_fain']):
loan_no = row['award_id_fain']
else: loan_no = row['award_id_uri'].str.split(':').str[0]
return loan_no
df5['loan_no'] = df5.apply(loan_cap, axis = 1)
4 Réponses :
Faites-le comme ça à la place.
def loan_cap(row):
if row['award_id_fain']:
return row['award_id_fain']
else:
return row['award_id_uri'].split(':')[0]
df5['loan_no'] = df5.apply(loan_cap, axis = 1)
@ Wolf7687 Un plaisir, vous pouvez marquer cet awserd tel qu'approuvé par la prise de contrôle sur le signe marqué situé sous le bouton Vote UP / DOW.
Je pense que vous n'avez pas besoin du Essayez: p> .str code> partie ici. Il dit qu'il sait déjà que c'est str code>.
essayer:
Pour illustrer, essayez:
ligne ['Prix_id_uri']. Split (':') [0] Code> P>
ligne ['Prix_id_uri'] code> est évalué vers une chaîne que vous appelez .str code> activé pour obtenir l'erreur. p>
"Ceci est une chaîne" .split ("") code>
et
"Ceci est une chaîne" .str.split ("") code> p>
Évitez sortie: p> Appliquer code> Si possible, essayez de penser en termes de la série entière, pas de rangée à la ligne. Dans ce cas, vous pouvez utiliser FILLNA () code>:
Je pense que vous avez juste besoin de
pronau_no = ligne ['prient_id_uri']. Str.split (':') [0] code>Essayé que Buckeye; Même message d'erreur
Oh je vois. Lorsque vous faites
ligne ['prient_id_uri'] code> vous obtenez un élément. Pas une sériesérie.str.split () code> est destiné à être appliqué à une série complète à la fois, pas à la ligne par ligne. Sinon, vous travaillez sur des chaînes individuelles, qui ont un.split () code> méthode, mais pas un.str.split () code> méthode. Cela aiderait à voir des échantillons d'entrée et de sortie pour mieux comprendre votre problèmeligne ['Prix_id_uri'] code> est déjà une chaîne, vous n'avez besoin que deligne ['Prix_id_uri']. Split (':') code>?