gpt4 book ai didi

python - 从 Numpy 结果分配 Koalas 列

转载 作者:行者123 更新时间:2023-12-01 07:08:41 27 4
gpt4 key购买 nike

尝试在 Databricks-Koalas 中复制 Pandas 功能在 Pandas 中:

df = pd.DataFrame({'a': [450, 1, 26],
'b': [1, 450, 70],
})
thresh = [x for x in range(26)] # create a list 1 to 25
df["c"] = np.where((df.a.isin(thresh) | df.b.isin(thresh)), 1, 0) # find the values within the threshold and flag column 'c'
df
# returns
Out[32]:
a b c
0 450 1 1
1 1 450 1
2 26 70 0

在考拉中:

df = ks.DataFrame({'a': [450, 1, 26],
'b': [1, 450, 70],
})

thresh = [x for x in range(26)] # create a list 1 to 25
df = df.assign(c=np.where((df.a.isin(thresh) | df.b.isin(thresh)), 1, 0)) # find the values within the threshold and flag column 'c'
# returns
PandasNotImplementedError: The method `pd.Series.__iter__()` is not implemented. If you want to collect your data as an NumPy array, use 'to_numpy()' instead.

如何正确使用 to_numpy 因为它期望或将 Numpy 结果包装在 ks.Series() 中,以便 allocate() 获取结果?

df = df.assign(c=ks.Series(np.where((df.a.isin(thresh)) | df.b.isin(thresh)), 1, 0))) 给出与上面相同的错误。

有没有办法在考拉身上复制 Pandas 的功能?

最佳答案

要在 ks.DataFrame 中执行此处执行的操作,您不需要 np.where,但可以使用 astype >:

df = df.assign(c= (df.a.isin(thresh) | df.b.isin(thresh)).astype(int) )
df
a b c
0 450 1 1
1 1 450 1
2 26 70 0

关于python - 从 Numpy 结果分配 Koalas 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58329442/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com