我正在处理一个大型数据集(在python中有pandas),我有一个类似于以下结构的数据框:
awk_cmd='{ if ($4 == '"$1"') { gsub(" *"," ",$0); printf $0 } }'
printf "$(date +%s)$EPM_DB_SEP" >> "$EPM_RUN_DIR/$2.pid"
ps -e -o user,group,comm,pid,ppid,pgid,etime,nice,rgroup,ruser,time,tty,vsz,stat,rss,args |\
awk "$awk_cmd" >> "$EPM_RUN_DIR/$2.pid"
然而,这些课程在数据框架中不断增长;缺少一些值,如示例中所示。我想知道如何从每个班级获得简单的统计数据,例如min或max,并将其分配给新功能。
class value
0 1 6
1 1 4
2 1 5
3 5 6
4 5 2
...
n 225 3
我能想出的唯一解决方案是耗时的循环。
答案 0 :(得分:5)
使用transform
df['min']=df.groupby('class')['value'].transform('min')
df
Out[497]:
class value min
0 1 6 4
1 1 4 4
2 1 5 4
3 5 6 2
4 5 2 2