试图在分组后获得不同的列值;但是获得总和groupby会降低对象区分并失去列的前导零
df = pd.read_csv(“ trial.txt”,sep ='|',converters = {'zip':str},keep_default_na = True,low_memory = False)
数据:
Emp State Zip Jan feb mar
Int NY 11111 1 0 1
int NY 11111 1 1 0
int NC 09999 2 2 0
int ON NH443 2 2 2
后
df2 = df.groupby("Zip").count()
zip的df2我的zip = 11111的输出我将在所有12个月的输出中显示2 22。如果我希望2 1 1和zip 09999显示为9999。
没有得到不同的列值的分组怎么了?考虑非空值(不存在空值)。列值仅为(0,1,2)
count
返回每个组的计数,不包括缺失值。这意味着零值也将包括在计数中。若要仅对正值计数,可以应用一个lambda函数,该函数求和大于零的值。
>>> df.groupby('Zip')[['Jan', 'feb', 'mar']].apply(lambda x: x.gt(0).sum())
Jan feb mar
Zip
09999 1 1 0
11111 2 1 1
NH443 1 1 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句