如何检查用户输入是否等于Pandas数据框某行指定列的值?
检查用户输入是否匹配Pandas DataFrame行中特定值的实现方法
你的需求是验证用户输入的T/F是否与随机抽取的DataFrame行中第三列(true or false)的值一致,核心是修正伪代码中获取目标列值的部分,同时需要注意CSV数据里的空格问题(部分值带有前导空格,比如 F),避免匹配失败。
修正后的完整代码
import pandas as pd import random df = pd.read_csv('pyquiz.csv') index_list = df.index.to_list() random.shuffle(index_list) user_input = input("Enter command: ") # 补充获取用户指令的逻辑 if user_input == 'quiz': for i in index_list: # 优化题目展示,只打印题干部分(可选) print(f"Question: {df.iloc[i]['statements']}") x = input('Enter T or F: ').strip() # 去除用户输入的前后空格 # 获取当前行的正确答案,并清理空格 correct_answer = df.iloc[i]['true or false'].strip() # 大小写不敏感匹配,提升用户体验 if x.upper() == correct_answer.upper(): print("Correct!") else: print(f"Wrong! Correct answer is {correct_answer}") input('\nPress enter to continue: ')
关键细节说明
- 获取目标列值:用
df.iloc[i]['true or false']替代你伪代码中的df.'Column_3_value_for_this_row',这是Pandas中按行索引+列名取值的标准写法。 - 处理空格问题:CSV里的部分答案带有前导空格(比如
F),用strip()清理字符串前后空白,避免因空格导致匹配失败。 - 大小写兼容:通过
upper()统一转换为大写,支持用户输入小写t/f也能正确匹配。 - 格式修正:原代码存在缩进错误,已统一调整为符合Python规范的格式。
内容的提问来源于stack exchange,提问作者jricks72
相关产品推荐
相关产品推荐

