2017-10-19 8 views
0

Je voulais modifier un bloc contigu de valeurs de ligne dans une colonne en une fois. En fin de compte, je me suis retrouvé avec ce qui fait le travail, mais je pense qu'il doit y avoir un moyen plus soigné.Modifier un bloc de valeurs de ligne dans une colonne en une fois

df = pd.read_excel('ja.xlsx') 
df # echo the contents of the df 

for index, row in df.iterrows(): 
    if index < 4: 
     df.loc[ index, "my_col_name"] = 'yes' 
    else: 
     df.loc[ index, "my_col_name"] = 'no' 

des suggestions?

Merci!

+2

similaires à cette question? https://stackoverflow.com/questions/28975758/replace-an-entry-in-a-pandas-dataframe-using-a-conditional-statement ou ce? https://stackoverflow.com/questions/19913659/pandas- conditionnel-création-d'une série-dataframe-colonne – johnchase

+0

merci pour ceux-ci - J'ai eu une chasse autour avant de demander, mais ni l'un ni l'autre n'est venu avec la recherche que j'ai faite – jacanterbury

Répondre

1
df["my_col_name"]='yes' 
df.loc[df.index>=4,"my_col_name"]='no' 

ou

df['new1']=np.where(df.index>=4,'no','yes') 
+1

Je savais qu'il y aurait un meilleur moyen - il y a sont deux meilleures façons :-) bien que le sur-bord l'amène à la concision sans aucune obfuscation. Merci beaucoup – jacanterbury