我正在学习Python Pandas,因此编写了一些代码来尝试与agg
一起使用的用户定义函数,如下所示。
import pandas as pd
def combine_cities(series):
return reduce(lambda x, y: x + ', ' + y, series)
data = pd.DataFrame({'Country': ['Russia','USA','China','USA','China'],
'City':['Moscow','Boston','Wuhan','New York','Beijing']})
a = data.groupby('Country').agg(combine_cities)
print(a)
但是,出现以下错误。知道我在这里做错了吗?
NameError Traceback (most recent call last)
~\Anaconda3\lib\site-packages\pandas\core\groupby\ops.py in agg_series(self, obj, func)
662 try:
--> 663 return self._aggregate_series_fast(obj, func)
664 except Exception:
~\Anaconda3\lib\site-packages\pandas\core\groupby\ops.py in _aggregate_series_fast(self, obj, func)
680 grouper = reduction.SeriesGrouper(obj, func, group_index, ngroups, dummy)
--> 681 result, counts = grouper.get_result()
682 return result, counts
pandas\_libs\reduction.pyx in pandas._libs.reduction.SeriesGrouper.get_result()
pandas\_libs\reduction.pyx in pandas._libs.reduction.SeriesGrouper.get_result()
....
最佳答案
发生错误的原因是Python3删除了reduce函数。因此,我必须添加以下内容才能使其正常运行。
from functools import reduce
关于python - 用户定义的功能不适用于Pandas,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60125305/