python - TypeError: copy() 在 Python 3.x 中不接受关键字参数
问题描述
在过去的几个月里,我一直在毫无问题地使用以下代码行:
a['Area Code']=a['mpan'].str[:2]
a.groupby(a['Area Code'])
a=a[a['Area Code'].astype(int)<=23]
data_list=a.groupby('Area Code')[['mpan']].apply(lambda g: list (map(tuple, g.values.tolist()))).to_dict()
突然间,我从最后一行遇到以下错误:
TypeError: copy() takes no keyword arguments
'a' 是一个 (23,2) 数据框,已按名为“区号”的列分组(并由 SQL 查询填充)。'data_list' 是一个使用 'Area Code' 列作为键的字典。我有点困惑为什么错误涉及 copy() 而它本身并不在行中。
我对 Python 还是很陌生,并且获得了对该特定行的帮助,因此不确定其基本性质。
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-
packages\pandas\core\groupby\groupby.py", line 735, in apply
result = self._python_apply_general(f)
File "C:\ProgramData\Anaconda3\lib\site-
packages\pandas\core\groupby\groupby.py", line 751, in _python_apply_general
keys, values, mutated = self.grouper.apply(f, self._selected_obj, self.axis)
File "C:\ProgramData\Anaconda3\lib\site-
packages\pandas\core\groupby\ops.py", line 171, in apply
result_values, mutated = splitter.fast_apply(f, group_keys)
File "C:\ProgramData\Anaconda3\lib\site-
packages\pandas\core\groupby\ops.py", line 925, in fast_apply
return libreduction.apply_frame_axis0(sdata, f, names, starts, ends)
File "pandas\_libs\reduction.pyx", line 505, in
pandas._libs.reduction.apply_frame_axis0
TypeError: copy() takes no keyword arguments
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<ipython-input-31-84e07b1b1635>", line 1, in <module>
a.groupby('Area Code')[['mpan']].apply(lambda g: list (map(tuple,
g.values.tolist()))).to_dict()
File "C:\ProgramData\Anaconda3\lib\site-
packages\pandas\core\groupby\groupby.py", line 746, in apply
return self._python_apply_general(f)
File "C:\ProgramData\Anaconda3\lib\site-
packages\pandas\core\groupby\groupby.py", line 751, in _python_apply_general
keys, values, mutated = self.grouper.apply(f, self._selected_obj, self.axis)
File "C:\ProgramData\Anaconda3\lib\site-
packages\pandas\core\groupby\ops.py", line 171, in apply
result_values, mutated = splitter.fast_apply(f, group_keys)
File "C:\ProgramData\Anaconda3\lib\site-
packages\pandas\core\groupby\ops.py", line 925, in fast_apply
return libreduction.apply_frame_axis0(sdata, f, names, starts, ends)
File "pandas\_libs\reduction.pyx", line 505, in
pandas._libs.reduction.apply_frame_axis0
TypeError: copy() takes no keyword arguments
解决方案
更新:该问题已在Pandas 1.0.1中修复,您可以安装它,例如,使用 pip:
pip install pandas==1.0.1
GroupBy.apply
TypeError
如果使用返回列表的函数调用(:issue31441
:) ,则会引发
这已在1.0.x中解决,例如,您可以通过以下方式安装pip
:
pip install git+ssh://git@github.com/pandas-dev/pandas.git@1.0.x
推荐阅读
- java - 如果在类中没有创建 Spark 会话,则 Spark Jobs 最终状态在 yarn-cluster 模式下失败
- r - 错误:'sh:c:/Rtools/mingw_32/bin/gcc:没有这样的文件或目录',虽然它确实存在
- python - AttributeError:“_io.TextIOWrapper”对象没有属性“tk”
- sql - 使用 R 将非 BOOLEAN 结果生成到 CSV
- python-3.x - 卷积神经网络的图像预处理
- javascript - 2 种写 Plotly.newPlot 的方法:有区别吗?
- python - 循环遍历非 None 和非空目录
- database - Sonarqube - 非常大的数据库
- c# - 如何在 C# 中为未处理的异常全局应用异常(应用程序是 WPF、Winforms 和类库项目的组合)
- java - Tomcat 日志记录属性过滤