在这个数据帧中,我希望从段列中自动选择该级别并执行其余操作。我试过了,但每次都需要改变水平。如何实现自动化?
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)
尝试DataFrame.groupby
:
yy.loc[yy["value"].eq("NAN"), "value"] = 0
for segment, df in yy.groupby("segment"):
print("segment =", segment)
print(df)
print("-" * 80)
打印:
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
--------------------------------------------------------------------------------