how define function automatically select all level in column and execute command

Viewed 19

In this dataframe i want that level gets automatically selected from segment column and perform rest operation. I tried this but in this i need to change level every time. How to automate it?

yy = pd.DataFrame({'segment':['High','High', 'premium','local','local','local'],'value':[12,'NAN',13,'NAN',14,15]})

level='High'
def seg(temp):
    **temp1 = yy[yy['segment'] == level]**
    temp2= temp1.replace("NAN", 0)
   return temp2
seg(yy)
1 Answers

Try DataFrame.groupby:

yy.loc[yy["value"].eq("NAN"), "value"] = 0

for segment, df in yy.groupby("segment"):
    print("segment =", segment)
    print(df)
    print("-" * 80)

Prints:

segment = High
  segment value
0    High    12
1    High     0
--------------------------------------------------------------------------------
segment = local
  segment value
3   local     0
4   local    14
5   local    15
--------------------------------------------------------------------------------
segment = premium
   segment value
2  premium    13
--------------------------------------------------------------------------------
Related