我有一个带有Target列的csv文件。我用pandas来读取csv。我希望用户添加一个字符串并遍历csv文件的Target列,如果该字符串存在,则打印,如果不存在,则要求用户重新输入该字符串。然而,无论我做什么,都不能识别输入字符串,尽管它在文件中,我经常得到再次输入的提示。
rawdata = pd.read_csv("pcr.csv")
targetlist = rawdata["Target"]
gene1 = input("Enter a gene: ")
for item in targetlist: #I have also used in rawdata["Target"] without success
if gene1 == item:
print("Gene 1: " + gene1)
else:
gene1 = input("Not found. Enter again: ")
2条答案
按热度按时间wd2eg0qa1#
建议:
1.使用Pandas Dataframe 而不是循环
然后你可以得到一系列匹配的目标:
matching_targets = df[df.match_gene1].Targets
这是因为
df.match_gene1
是一个布尔序列,用作行选择条件。1.你真的想要“精确”的匹配吗?
语句
df.Target == gene1
需要区分大小写的完全匹配。如果这不是您想要的,请更新您的问题,输入和期望的输出。yi0zb3m42#
问题是你的else在for语句里。问题是..它读取第一项如果第一项不匹配,它会要求你再次输入,因此,它不会遍历每一项。我会通过做一些更像这样的事情来解决这个问题: