gpt4 book ai didi

python - 使用索引列表索引 Pandas DataFrame 并填充值

转载 作者:行者123 更新时间:2023-12-04 08:25:58 24 4
gpt4 key购买 nike

我有两个 Pandas 数据帧。 idxs具有多个 y 的索引每个 x 的值.我还有一个名为 mat 的 0 填充矩阵包含所有可能的索引,如下所示:

idxs = pd.DataFrame({"x":np.repeat([1,4,20,50, 84],2), "y":np.random.randint(100, size=10)})
mat = pd.DataFrame(0, index=np.arange(100), columns=np.arange(100))
我如何最有效地使用 idxs 的行填写 mat与 1s。
我能做的最好的是按行捕获它们:
mat.loc[4, list(idxs.loc[lambda df: df['x'] == 4, "y"])] = 1
然后遍历 x 中的值.但是,我想避免对 x 中的每个值使用掩码.我想一定有一种方法可以根据 x 的两个列表进行索引。和 y值,但我找不到它。任何帮助表示赞赏!谢谢!

最佳答案

选项 1 :您可以通过按组更新来更快地尝试您的方法:

for x,ys in idxs.groupby('x')['y']:
mat.loc[x,ys] = 1
选项 2 :复制整个数据,使用 numpy 索引更新,并分配回:
data = mat.to_numpy()
data[idxs['x'], idxs['y']] = 1
mat.loc[:] = data

关于python - 使用索引列表索引 Pandas DataFrame 并填充值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65258819/

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