我正在尝试合并一个cudf数据帧和一个geopandas数据帧。
df = df.merge(parishes[['NAME_3', 'area']], left_on='Parish', right_on='NAME_3').drop(columns=['NAME_3'])df是一个cudf数据帧,而parishes是一个geopandas数据帧。
在运行上面的代码行时,我得到以下错误:
TypeError Traceback (most recent call last)
<ipython-input-40-5143535bcf20> in <module>()
----> 1 df = df.merge(parishes[['NAME_3', 'area']], left_on='Parish', right_on='NAME_3').drop(columns=['NAME_3'])
5 frames
/usr/local/lib/python3.7/site-packages/cudf/core/join/join.py in _validate_merge_params(lhs, rhs, on, left_on, right_on, left_index, right_index, how, suffixes)
414
415 # If nothing specified, must have common cols to use implicitly
--> 416 same_named_columns = set(lhs._data) & set(rhs._data)
417 if (
418 not (left_index or right_index)
TypeError: 'BlockManager' object is not iterable问题出在哪里?有人能帮我一下吗?这是我第一次使用cudf dataframes,所以我不确定是什么导致了这个问题。
发布于 2021-05-27 02:14:07
cudf和geopandas目前还不兼容。您应该能够使用例如gpu_df = cudf.from_pandas(df[['Parishes', 'name_3']])将geopandas数据框架中的所有非几何列移动到cudf中,然后您可以将该gpu_df与任何其他cudf DataFrame合并。目前,cudf的路线图中没有geometry数据类型,但是直接依赖于cudf的cuspatial (https://github.com/rapidsai/cuspatial)有。当6月份发布21.06版本时,cuspatial将支持geometry列,并使您可以更轻松地将cudf和cuspatial的所有功能与来自geopandas的任何内容一起使用。
https://stackoverflow.com/questions/67710137
复制相似问题