1

我正在尝试合并 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 数据帧,所以我不确定是什么导致了这个问题。

4

1 回答 1

3

cudf并且geopandas彼此不兼容(还)。您应该能够将 geopandas 数据框中的所有非几何列移动到cudf使用中,例如,gpu_df = cudf.from_pandas(df[['Parishes', 'name_3']])然后您可以将该 gpu_df 与任何其他cudfDataFrame 合并。geometrycudf目前在其路线图上没有数据类型,但是cuspatialhttps://github.com/rapidsai/cuspatial),它直接依赖于cudf,有。6 月份的 21.06 版本 cuspatial将支持geometry列,让您更轻松地使用geopandas的所有功能cudf和任何东西。cuspatial

于 2021-05-26T18:14:06.957 回答