首页 > 解决方案 > Pandas 命名聚合语法抛出错误 TypeError: int() argument must be a string, a bytes-like object or a number, not '_NoValueType'

问题描述

我有一个熊猫数据框如下

aa = pd.DataFrame({
'x': range(0, 5),
'g1': [1,1,2,2,1]})

当我使用未命名的聚合时,我得到了预期的结果

xx = aa.groupby('g1').agg({'x' : 'sum'}).reset_index()

但是当我将语法更改为命名聚合时

xx = aa.groupby('g1').agg(xsum=('x', 'sum')).reset_index()

我收到以下错误消息

TypeError:int() 参数必须是字符串、类似字节的对象或数字,而不是“_NoValueType”

不知道我哪里错了。。

标签: pythonpandasaggregation

解决方案


您的错误位于其他地方,您的代码中没有转换为 int 。

正如预期的那样,提供的代码片段可以正常工作:

import pandas as pd
aa = pd.DataFrame({'x': range(0, 5),
                   'g1': [1,1,2,2,1]})
aa.groupby('g1').agg(xsum=('x', 'sum')).reset_index()

输出:

   g1  xsum
0   1     5
1   2     5

推荐阅读