Python 熊猫能否执行包含两列的聚合操作?
给定以下数据帧,Python 熊猫能否执行包含两列的聚合操作?,python,r,pandas,dplyr,Python,R,Pandas,Dplyr,给定以下数据帧, 是否可以计算col2和col2+col3之和, 在单个聚合函数中 import pandas as pd df = pd.DataFrame({'col1': ['a', 'a', 'b', 'b'], 'col2': [1, 2, 3, 4], 'col3': [10, 20, 30, 40]}) . 可乐 可乐 可乐 0 A. 1. 10 1. A. 2. 20 2. B 3. 30 3. B 4. 40 让我们先尝试分配新列 out = df.assign(col23
是否可以计算
col2
和col2+col3
之和,在单个聚合函数中
import pandas as pd
df = pd.DataFrame({'col1': ['a', 'a', 'b', 'b'], 'col2': [1, 2, 3, 4], 'col3': [10, 20, 30, 40]})
.
可乐
可乐
可乐
0
A.
1.
10
1.
A.
2.
20
2.
B
3.
30
3.
B
4.
40
让我们先尝试分配新列
out = df.assign(col23 = df.col2+df.col3).groupby('col1',as_index=False).sum()
出[81]:
col1 col2 col3 col23
0 a 3 30 33
1 b 7 70 77
根据我的理解,apply
更像是R中的summary
out = df.groupby('col1').\
apply(lambda x : pd.Series({'col2_sum':x['col2'].sum(),
'col23_sum':(x['col2'] + x['col3']).sum()})).\
reset_index()
Out[83]:
col1 col2_sum col23_sum
0 a 3 33
1 b 7 77
让我们先尝试分配新列
out = df.assign(col23 = df.col2+df.col3).groupby('col1',as_index=False).sum()
出[81]:
col1 col2 col3 col23
0 a 3 30 33
1 b 7 70 77
根据我的理解,apply
更像是R中的summary
out = df.groupby('col1').\
apply(lambda x : pd.Series({'col2_sum':x['col2'].sum(),
'col23_sum':(x['col2'] + x['col3']).sum()})).\
reset_index()
Out[83]:
col1 col2_sum col23_sum
0 a 3 33
1 b 7 77
使用
datar
,您可以轻松完成此操作:
>>来自datar.all导入f、TIBLE、group\U by、SUMMARY、sum
>>>df=tibble(
…col1=['a','a','b','b'],
…col2=[1,2,3,4],
…col3=[10,20,30,40]
... )
>>>df>>分组依据(f.col1)>>总结(
…col2_sum=sum(f.col2),
…col23_sum=sum(f.col2+f.col3)
... )
col1 col2_sum col23_sum
0333
1 b 7 77
我是该软件包的作者。使用
datar
,您可以轻松完成:
>>来自datar.all导入f、TIBLE、group\U by、SUMMARY、sum
>>>df=tibble(
…col1=['a','a','b','b'],
…col2=[1,2,3,4],
…col3=[10,20,30,40]
... )
>>>df>>分组依据(f.col1)>>总结(
…col2_sum=sum(f.col2),
…col23_sum=sum(f.col2+f.col3)
... )
col1 col2_sum col23_sum
0333
1 b 7 77
我是这个软件包的作者。太棒了,
apply
+pd.Series
部分正是我想要的。谢谢太棒了,apply
+pd.Series
部分正是我想要的。谢谢