Pandas 命名聚合语法抛出错误 TypeError: int() argument must be a string, a bytes-like object or a number, not '
Posted
技术标签:
【中文标题】Pandas 命名聚合语法抛出错误 TypeError: int() argument must be a string, a bytes-like object or a number, not \'_NoValueType\'【英文标题】:Pandas named aggregation syntax throws error TypeError: int() argument must be a string, a bytes-like object or a number, not '_NoValueType'Pandas 命名聚合语法抛出错误 TypeError: int() argument must be a string, a bytes-like object or a number, not '_NoValueType' 【发布时间】:2021-12-13 06:37:49 【问题描述】:我有一个如下的熊猫数据框
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'
不知道哪里出错了..
【问题讨论】:
【参考方案1】:您的错误出在其他地方,您的代码中没有转换为 int。
提供的 sn-p 工作正常,正如预期的那样:
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
【讨论】:
以上是关于Pandas 命名聚合语法抛出错误 TypeError: int() argument must be a string, a bytes-like object or a number, not '的主要内容,如果未能解决你的问题,请参考以下文章
从 Pandas 聚合中重命名结果列(“FutureWarning:不推荐使用带有重命名的字典”)
使用 Pandas 抛出错误在 Python 中编写 UDF