0

我刚刚用 cudf (rapidsai) 加载了 csv 文件以减少所需的时间。当我尝试使用 where 条件搜索索引时出现问题 df['X'] = A

这是我的代码示例:

import cudf, io, requests
df = cudf.read_csv('fileA.csv')

# X is an existing column
# A is the value
df['X'] = np.where(df['X'] == A, 1, 0)

# What it is supposed to do with pandas is it search the index where df['X'] is equal to value A, 
# and change them to 1, otherwise leave them as 0.

但是,错误显示如下:

if len(cond) ! = len(self):
  raise ValueError("""Array conditional must be same shape as self""")
input_col = self._data[self.name]

ValueError : Array conditional must be same shape as self

我不明白为什么会这样,因为我以前从来没有遇到过熊猫的任何问题。

4

1 回答 1

1

cuDF 正在尝试通过数组函数协议numpy.where进行调度。cupy.where出于某种原因,cuDF 在这种情况下无法成功运行分派的函数。

一般来说,建议在这里明确使用 CuPy 而不是 numpy。

import cudf
import cupy as cp
​
A = 2
df = cudf.DataFrame({"X": [0, 1, 2]})
df['X'] = cp.where(df['X'] == A, 1, 0)
df
X
0   0
1   0
2   1
于 2021-07-08T02:31:17.197 回答