Python 在数据透视表中传递给aggfunc的内容用于汇总计数器
我有一个包含两列“a”和“B”的数据表,“B”列中的元素是计数器。比如说,Python 在数据透视表中传递给aggfunc的内容用于汇总计数器,python,pandas,pivot,pivot-table,Python,Pandas,Pivot,Pivot Table,我有一个包含两列“a”和“B”的数据表,“B”列中的元素是计数器。比如说, c = Counter(a=4, b=2) df = pd.DataFrame({"A": ["group1", "group1", "group1", "group2", "group2"], "B": [c, c, c, c, c]}) 我想创建一个透视表,在这里我对列“a”中的元素值进行分组,并通过将计数器相加来对列“B”进行聚合。我想知道我应该把什么传给aggfunc 这是
c = Counter(a=4, b=2)
df = pd.DataFrame({"A": ["group1", "group1", "group1", "group2", "group2"],
"B": [c, c, c, c, c]})
我想创建一个透视表,在这里我对列“a”中的元素值进行分组,并通过将计数器相加来对列“B”进行聚合。我想知道我应该把什么传给aggfunc
这是我尝试过的,但遗憾的是它不起作用:
pt = pd.pivot_table(df, index = ['A'], values = ['B'], aggfunc = ['+'])
有什么建议吗
我的预期产出是
table
group1 Counter(a=12, b=6) # i.e., c+c+c
group2 Counter(a=8, b=4) # i.e., c+c
只不过是sum
>>> df.groupby('A')['B'].sum()
A
group1 {'a': 12, 'b': 6}
group2 {'a': 8, 'b': 4}
Name: B, dtype: object
注二:
'a'
和'b'
的值“B”:[c,c,c,c,c]
使用相同的计数器对象初始化列'B'
的每个元素您可能需要
“B”:[c.copy()表示范围(5)]
-如果您想保留原始设计,也就是说。您的预期输出是什么?@MayankPorwal谢谢您的提问!我已经在问题描述中添加了。pt=pd.pivot_表(df,index=['A'],value=['B'],aggfunc=['sum'])
?@AndrejKesely它可以工作!!谢谢!有什么解释吗?抱歉,我是python初学者…@study_Guy'+'
不是有效的函数名,'sum'
可能是您的意思。
>>> df.loc[0, 'B']['a'] = 100
>>> df
Out[9]:
A B
0 group1 {'a': 100, 'b': 2}
1 group1 {'a': 100, 'b': 2}
2 group1 {'a': 100, 'b': 2}
3 group2 {'a': 100, 'b': 2}
4 group2 {'a': 100, 'b': 2}