gpt4 book ai didi

python - 在 While 循环中从 Pandas Dataframe 中查找特定的数据行

转载 作者:行者123 更新时间:2023-12-01 08:52:45 25 4
gpt4 key购买 nike

  1. 我正在尝试获取 csv,并将其作为 Pandas Dataframe 读取。
  2. 此数据框包含 4 行数字。
  3. 我想从数据框中选取特定行的数据。
  4. 在 While 循环中,我想从 Dataframe 中选择随机行,并将其与我选择的行进行比较。
  5. 我希望它继续运行 while 循环,直到该随机行 100% 等于我之前选择的行。
  6. 然后我希望 While 循环中断,并希望它能够计算匹配随机数所需的尝试次数。

这是我到目前为止所拥有的:

这是数据框的示例:

    A  B  C  D
1 2 7 12 14
2 4 5 11 23
3 4 6 14 20
4 4 7 13 50
5 9 6 14 35

这是我的努力的一个例子:

import time
import pandas as pd

then = time.time()

count = 0

df = pd.read_csv('Get_Numbers.csv')
df.columns = ['A', 'B', 'C', 'D']

while True:
df_elements = df.sample(n=1)
random_row = df_elements
print(random_row)
find_this_row = df['A','B','C','D' == '4','7','13,'50']
print(find_this_row)
if find_this_row != random_row:
count += 1
else:
break

print("You found the correct numbers! And it only took " + str(count) + " tries to get there! Your numbers were: " + str(find_this_row))

now = time.time()

print("It took: ", now-then, " seconds")

上面的代码给出了一个明显的错误......但是我现在已经尝试了很多不同的版本来查找find_this_row数字,我只是不知道该怎么办了,所以我留下了这个尝试进入。

我想尽量避免使用我试图查找的行的特定索引,我宁愿只使用值来查找它。

我使用df_elements = df.sample(n=1)随机选择一行。这是为了避免使用random.choice,因为我不确定这是否可行,或者哪种方式更节省时间/内存,但我也愿意接受这方面的建议。

在我看来,这似乎很简单,随机选择一行数据,如果与我想要的数据行不匹配,则继续随机选择数据行,直到匹配为止。但我似乎无法执行它。

非常感谢任何帮助!

最佳答案

您可以使用返回 np.ndarray of shape=(1, 2) 的值,使用 values[0] 来获取一维数组。

然后将数组与 any() 进行比较

import time
import pandas as pd

then = time.time()

df = pd.DataFrame(data={'A': [1, 2, 3],
'B': [8, 9, 10]})

find_this_row = [2, 9]
print("Looking for: {}".format(find_this_row))

count = 0
while True:
random_row = df.sample(n=1).values[0]
print(random_row)

if any(find_this_row != random_row):
count += 1
else:
break

print("You found the correct numbers! And it only took " + str(count) + " tries to get there! Your numbers were: " + str(find_this_row))

now = time.time()

print("It took: ", now-then, " seconds")

关于python - 在 While 循环中从 Pandas Dataframe 中查找特定的数据行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53000259/

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