鉴于DataFrame df
,我可以使用
df.groupby(['columnA']).size()
和每个组中的列B的mimimun值
df.groupby(['columnA']).agg({'columnB':min})
或(我猜的是语法糖)
df.groupby(['columnA'])['columnB'].min()
但是如何直接获得具有这两列的DataFrame?
在SQL中,如果你对它感到满意,那就像
一样简单SELECT count(columnA), min(columnB) FROM table GROUP BY columnA
提前感谢任何线索。
答案 0 :(得分:1)
将它们放在agg
中应该有效,因为>>> df
columnA columnB columnC
0 cat1 3 400
1 cat1 2 20
2 cat1 5 3029
3 cat2 1 492
4 cat2 4 30
5 cat3 2 203
6 cat3 6 402
7 cat3 4 391
>>> df.groupby(['columnA']).columnB.agg(['size', 'min'])
size min
columnA
cat1 3 2
cat2 2 1
cat3 3 2
>>> df.groupby(['columnA']).agg(['size', 'min'])
columnB columnC
size min size min
columnA
cat1 3 2 3 20
cat2 2 1 2 30
cat3 3 2 3 203
允许一系列功能。
agg
df.groupby(['columnA']).agg({'columnA':'size','columnB':'min'})
也接受列的词典 - >函数,所以你想要将一个函数单独映射到每一列你可以用某些东西(这里不需要)来完成这样的事情,如
amixer -c 0 sset Line,0 100%, 100% unmute cap