我已经多次尝试使用pandas
对数值数据执行一些数值聚合方法。然而,我收到了一个NotImplementedError
,每当我这样做时,它就会抛出一个TypeError
。我假设pandas
在执行上述数值任务时拒绝忽略字符串列。我如何防止这种情况发生?
给定一个名为matrix_data
的数据透视表,并将pandas
导入为pan
:
Account Number Company Contact Account Manager Product Licenses
0 2123398 Google Larry Pager Edward Thorp Analytics 150
1 2123398 Google Larry Pager Edward Thorp Prediction 150
2 2123398 Google Larry Pager Edward Thorp Tracking 300
3 2192650 BOBO Larry Pager Edward Thorp Analytics 150
4 420496 IKEA Elon Tusk Edward Thorp Analytics 300
Sale Price Status
0 2100000 Presented
1 700000 Presented
2 350000 Under Review
3 2450000 Lost
4 4550000 Won
尝试按公司汇总所有数值:
pan.pivot_table(matrix_data, index = "Company", aggfunc="mean");
抛出一个异常如下:
NotImplementedError Traceback (most recent call last)
File ~\AppData\Roaming\Python\Python311\site-packages\pandas\core\groupby\groupby.py:1490, in GroupBy._cython_agg_general..array_func(values)
1489 try:
-> 1490 result = self.grouper._cython_operation(
1491 "aggregate",
1492 values,
1493 how,
1494 axis=data.ndim - 1,
1495 min_count=min_count,
1496 **kwargs,
1497 )
1498 except NotImplementedError:
1499 # generally if we have numeric_only=False
1500 # and non-applicable functions
...
1698 # e.g. "foo"
-> 1699 raise TypeError(f"Could not convert {x} to numeric") from err
1700 return x
TypeError: Could not convert Larry PagerLarry PagerLarry Pager to numeric
dataframe.groupby(["col_name1"]).mean()
将抛出相同的错误
我用的是windows10,python3.11,pandas版本2.0.1。所有这些都是在Jupyter Notebook上使用VScode执行的
1条答案
按热度按时间abithluo1#
这在Pandas 2.0中已被弃用。这是pandas 1.5.3给出的警告:
未来警告:pivot_table删除了一个列,因为它无法聚合。此行为已弃用,并将在pandas的未来版本中引发。仅选择可以聚合的列。
现在必须选择要聚合的特定列。