首页 > 编程知识 正文

怎样用python增加列,concat是聚合函数吗

时间:2023-05-03 12:02:08 阅读:149090 作者:1541

不可能。 只有用户可以定义具有功能键的词典和列名列表,并在循环中交换键和值。

data _ stores=PD.data frame ({ ' store ' : [ 1,1,2,2 ],

' item1' : [ 45,200,20,300 ],

' item2' : [ 50,300,17,350 ],

' item3' : [ 53,250,21,400 ] } )

打印(data _ stores ) )。

store item1 item2 item3

0 1 45 50 53

1 1 200 300 250

2 2 20 17 21

3 2 300 350 400

d={'mean':'item1',' sum' : ['item2',' item3']}

out={}

for k,v in d.items () :

ifisinstance(v,list ) :

for x in v:

out[x]=k

else:

out[v]=k

打印(out )是

{'item1': 'mean ',' item2': 'sum ',' item3': 'sum'}

data _ stores _ total=data _ stores.group by (' store ',as_index=False ) (out ) ) ) ) )

打印(data _ stores _ total ) )。

store item1 item2 item3

0 1 122.5 350 303

1 2 160.0 367 421

或:

d={'mean':['item1'],' sum' : ['item2',' item3']}

d1={k: oldk for oldk,oldv in d.items () for k in oldv}

打印(d1)。

{'item1': 'mean ',' item2': 'sum ',' item3': 'sum'}

data _ stores _ total=data _ stores.group by (' store ',as_index=False ).agg (D1 ) )。

打印(data _ stores _ total ) )。

store item1 item2 item3

0 1 122.5 350 303

1 2 160.0 367 421

编辑:

如果要使用同一聚合函数聚合所有列而不使用多列,则可以为所有列创建词典,为每个列表排除差异,然后添加缺少的对键:列值:聚合函数。

out=dict.from keys (data _ stores.columns.difference ([ ' store ',' item1'],' sum ' ) )

out['item1']='mean '

打印(out )是

{'item2': 'sum ',' item3': 'sum ',' item1': 'mean'}

data _ stores _ total=data _ stores.group by (' store ',as_index=False ) (out ) ) ) ) )

打印(data _ stores _ total ) )。

store item2 item3 item1

0 1 350 303 122.5

1 2 367 421 160.0

也可以传递使用此列的自定义函数。

deffunc(x ) :

return x.sum ()/x.mean ) )。

out=dict.from keys (data _ stores.columns.difference ([ ' store ',' item1'],' sum ' ) )

out['item1']=func

打印(out )是

{'item2': 'sum ',' item3': 'sum ',' item1': }

data _ stores _ total=data _ stores.group by (' store ',as_index=False ) (out ) ) ) ) )

打印(data _ stores _ total ) )。

store item2 item3 item1

0 1 350 303 2

1 2 367 421 2

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。