csv Dataframe 上的随机迭代

omqzjyyz  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(128)

我正在尝试随机迭代一个Dataframe。我正在阅读的文件是一个CSV文件:
pyquiz.csv

variables,statements,True or False
f1, f_state1, F
f2, true_state1,T
f3, f_state2, F
f20, f_state20, F

Dataframe

df = pd.DataFrame({
    'variables': ['f1', 'f2', 'f3', 'f20'],
    'statements': ['f_state1', 'true_state1', 'f_state2', 'f_state20'],
    'True of False': ['F', 'T', 'F', 'F']
})

在随机迭代文件之后,我想根据第三列设置一个条件。
下面是我之前写的代码,我想尝试使用Pandas完成类似的事情,但使用CSV文件而不是列表:

if user_input == 'pyquiz':
for value in sorted(quiz_list, key=lambda _: random.random()):
    print(value)

    x = input("Enter T or F: ")

    if value in true_statements and x == 'T':
        print("Correct!")
        y = input('\nPress enter to continue: ')

    if value in true_statements and x == 'F':
        print("Incorrect.")

    if value in false_statements and x == 'F':
        print("Correct!")
        y = input("\nPress enter to continue:\n ")

    if value in false_statements and x == 'T':
        print("Incorrect.")
goucqfw6

goucqfw61#

您可以尝试:

from random import shuffle

idx = df.index.to_list()  # get index to a list
shuffle(idx)              # shuffle the list using `random.shuffle()`

for i in idx:             # iterate over the shuffled list
    print(df.iloc[i])     # access the index using `.iloc`

图纸(例如):

variables                 f2
statements       true_state1
True or False              T
Name: 1, dtype: object

variables              f1
statements       f_state1
True or False           F
Name: 0, dtype: object

variables              f3
statements       f_state2
True or False           F
Name: 2, dtype: object

variables              f20
statements       f_state20
True or False            F
Name: 3, dtype: object

使用的 Dataframe :

variables   statements True or False
0        f1     f_state1             F
1        f2  true_state1             T
2        f3     f_state2             F
3       f20    f_state20             F

相关问题