在Pandas中有没有一种方法可以创建一个新的列,它是两列聚合的函数,这样对于任意分组,它都会保留这个函数?这在功能上类似于在excel中创建计算列和按标签旋转。在
df1 = pd.DataFrame({'lab':['lab1','lab2']*5,'A':[1,2]*5,'B':[4,5]*5})
df1['C'] = df1.apply(lambda x: x['A']/x['B'],axis=1)
pd.pivot_table(df1,index='lab',{'A':sum,'B':sum,'C':lambda x: x['A']/x['B']})
应返回:
|lab|A B|C|
|----|---|---|
|lab1|5 |20|.25|
|lab2|10|25 |.4|
我希望通过'lab'(或任何标签组合)进行聚合,并让dataframe返回聚合,而不必重新定义列计算。我意识到这对于手动代码来说很简单,但是当您有很多列时,它是重复的。在
有两种方法可以使用
apply
或agg
:相关问题 更多 >
编程相关推荐