我需要选择数据帧第一列的唯一值,并将它们作为第一列添加到第二个数据帧(新创建的值)->然后添加与每个唯一值相关的以下列。 我得到类似以下的内容
First Field Name Second Field Name
0 1 12
1 2 32
2 3 4
3 2 32
4 3 43
5 4 54
6 3 11
7 2 23
8 1 43
我需要以下内容
uniques Sum min max mean std ave
1 55 12 ... ... ... ...
2 87 23
3 58 4
4 54 54
答案 0 :(得分:2)
您可以GroupBy.agg
使用聚合功能列表:
(df.groupby('First field')
.agg(['min','max','mean','std', ('ave', 'mean')])
.droplevel(0, axis=1))
min max mean std ave
FirstFieldName
1 12 43 27.500000 21.920310 27.500000
2 23 32 29.000000 5.196152 29.000000
3 4 43 19.333333 20.792627 19.333333
4 54 54 54.000000 NaN 54.000000
答案 1 :(得分:1)
您应该在带有字典的字典中使用groupby函数,在该字典中您要通过“第二个”字段告知您要执行的操作:
df= pd.DataFrame({'First field' : [1,2,3,2,3,4,3,2,1],
'Second Field':[12,32,4,32,43,54,11,23,43]})
df.groupby('First field').agg({'Second Field' : ['sum', 'min', 'max', 'std', 'mean']})
退出:
Second Field
sum min max mean std
First field
1 55 12 43 27.500000 21.920310
2 87 23 32 29.000000 5.196152
3 58 4 43 19.333333 20.792627
4 54 54 54 54.000000 NaN