gpt4 book ai didi

python - 为什么我会收到此关键错误 :0 when using random. choice()?

转载 作者:行者123 更新时间:2023-12-01 02:33:47 25 4
gpt4 key购买 nike

我正在尝试创建一个随机生成器函数来选择随机参与者进入游戏。基本上我的逻辑是:

  1. 从数据帧列中随机选择 1 个名称(使用 random.choice())
  2. 用 NaN 替换该名称以将其涂黑
  3. 重新运行

对于我的第二次运行,我在使用 random.choice 方法时收到关键错误:0。我可以通过使用 tolist() 将其放入列表来纠正它。

让我通过以下代码来说明我的意思:

import pandas as pd
import numpy as np
from random import choice

df = pd.DataFrame({'name':['Andy', 'Jack', 'Anne']})
for i in range(1,100):
c_name = choice(df.name.dropna())
df.name.replace(c_name, np.NaN, inplace=True) #Let's say Andy is replaced

# up until here it will work fine

# Trying the 2nd run

for i in range(1,100):
c_name = choice(df.name.dropna())
# !will output Key Error : 0
# if I do this: c_name = choice(df.name.dropna().tolist()) it will be fine.
# if the NaN value is at the last index, it is also fine.

我的问题是为什么random.choice()的行为是这样的?我已经使用 dropna() 删除了 NaN 值,它应该充当一系列没有 NaN 的名称。

最佳答案

第一个错误是:

result = self.index.get_value(self, key)

由于 random.choice 需要一个序列:

random.choice(seq) Return a random element from the non-empty sequence seq. If seq is empty, raises IndexError.

因此,给定一个数据帧,它会按每个索引隐式地将 df 更改为列表。如果索引不连续,则会抛出错误。

关于python - 为什么我会收到此关键错误 :0 when using random. choice()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46483947/

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