当前位置: 首页 > 面试题库 >

没有要聚合的数字类型-groupby()行为是否发生变化?

储嘉悦
2023-03-14
问题内容

我对某些分组代码有疑问,我敢肯定一旦运行(在较早的熊猫版本上)。在0.9上,我 没有数字类型来汇总 错误。有任何想法吗?

In [31]: data
Out[31]: 
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 2557 entries, 2004-01-01 00:00:00 to 2010-12-31 00:00:00
Freq: <1 DateOffset>
Columns: 360 entries, -89.75 to 89.75
dtypes: object(360)

In [32]: latedges = linspace(-90., 90., 73)

In [33]: lats_new = linspace(-87.5, 87.5, 72)

In [34]: def _get_gridbox_label(x, bins, labels):
   ....:             return labels[searchsorted(bins, x) - 1]
   ....:

In [35]: lat_bucket = lambda x: _get_gridbox_label(x, latedges, lats_new)

In [36]: data.T.groupby(lat_bucket).mean()
---------------------------------------------------------------------------
DataError                                 Traceback (most recent call last)
<ipython-input-36-ed9c538ac526> in <module>()
----> 1 data.T.groupby(lat_bucket).mean()

/usr/lib/python2.7/site-packages/pandas/core/groupby.py in mean(self)
    295         """
    296         try:
--> 297             return self._cython_agg_general('mean')
    298         except DataError:
    299             raise

/usr/lib/python2.7/site-packages/pandas/core/groupby.py in _cython_agg_general(self, how, numeric_only)
   1415 
   1416     def _cython_agg_general(self, how, numeric_only=True):
-> 1417         new_blocks = self._cython_agg_blocks(how, numeric_only=numeric_only)
   1418         return self._wrap_agged_blocks(new_blocks)
   1419

/usr/lib/python2.7/site-packages/pandas/core/groupby.py in _cython_agg_blocks(self, how, numeric_only)
   1455 
   1456         if len(new_blocks) == 0:
-> 1457             raise DataError('No numeric types to aggregate')
   1458 
   1459         return new_blocks

DataError: No numeric types to aggregate

问题答案:

您如何生成数据?

看看输出如何显示您的数据是“对象”类型的?groupby操作首先专门检查每一列是否为数字dtype。

In [31]: data
Out[31]: 
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 2557 entries, 2004-01-01 00:00:00 to 2010-12-31 00:00:00
Freq: <1 DateOffset>
Columns: 360 entries, -89.75 to 89.75
dtypes: object(360)

看↑

您是否先初始化了一个空的DataFrame然后填充了它?如果是这样,这可能就是为什么它会像0.9之前的新版本一样更改的原因,将空的DataFrames初始化为浮点类型,但现在它们属于对象类型。如果是这样,您可以将初始化更改为DataFrame(dtype=float)

你也可以打电话 frame.astype(float)



 类似资料:
  • 问题内容: 我想从以下带有列,的数据框中创建数据透视表。数据透视表显示,但不显示。当我只用尝试时,我得到了错误。如何解决此问题,使我同时看到数字字段和字段(字符串) 问题答案: 您可以使用和: 产量 或者,与配合使用: 产量 使用, 通过获取找到的第一个值对每个或组进行聚合。在您的情况下,似乎没有重复项,因此第一个值与唯一的值相同。

  • 问题内容: 关于此错误,有很多问题,但是环顾四周之后,我仍然无法找到解决方案的想法。我正在尝试使用字符串旋转数据框架,以使一些行数据变为列,但到目前为止还没有解决。 我的df的形状 样本格式 我想转向的是 当 问题 值将成为列,与 response_answer 它是的相应数列,并保留IDS 我尝试过的 DataError:没有要聚合的数字类型 用字符串值旋转数据框的方法是什么? 问题答案: in

  • 问题 你希望检查一个变量是否为一个数组。 myArray = [] console.log typeof myArray // outputs 'object' “typeof” 运算符为数组输出了一个错误的结果。 解决方案 使用下面的代码: typeIsArray = Array.isArray || ( value ) -> return {}.toString.call( value ) i

  • 问题内容: 假设我有任何变量,定义如下: 我想要一个检查变量类型是否像函数一样的函数。即: 如何检查变量是否为上述定义的类型? 问题答案: 当然,下划线的方式效率更高,但是当效率不是问题时,最好的检查方法是写在@Paul Rosania链接的下划线页面上。 受下划线启发,最终的isFunction函数如下:

  • 我的问题是关于Kafka的。群比。总数的以及由此产生的聚合值。 我正试图每天汇总每分钟的事件。 我有一个分钟事件生成器(此处未显示),为一些房屋生成事件。有时事件值错误,必须重新发布分钟事件。分钟事件发表在话题“分钟”中。 我正在使用kafka Streams和对每天和每家每户的这些事件进行汇总。 通常,由于一天有1440分钟,因此聚合值不应超过1440。此外,不应存在事件量为负值的聚合。 ...

  • 问题内容: 我正在尝试构建一个全新的Spring Framework 4.0项目,而没有所有神奇的东西,而只是简单地将它踢过去。 我在这里关注该教程:http : //spring.io/guides/tutorials/data/并取得了一些成功。我只是停留在这一点上。 当我运行此单元测试时,得到以下堆栈跟踪: 根据观察和研究,似乎是在告诉我有两个EntityManager类。第一个来自hibe