我构建了一个字典应用程序,在其中使用了3列df1 DataFrame(英语-德语-西班牙语)。我需要遍历用户为英语提供值的每一列,并且他应该用西班牙语和德语发布相同的词。
我这样启动代码:
for w in df1.index:
e = df1.loc[w]['English']
print("Translate: " + e + "in German")
d = input('')
print("Now try Spanish\n")
s = input('')
如何随机迭代以检查提供的输入是否与特定行中的值匹配?
更新:数据样本
| Deutsch | Englisch | Español |
|--------------------|-----------------|----------------|
| bei meinen eltern | with my paernts | con mis padres |
| zu Hause | at home | en casa |
| stammen aus | come from | viene de |
| ist in ... geboren | was born in | nació en |
答案 0 :(得分:1)
如果您的数据集比实际要遍历的行数大得多(如果您有完整的单词词典,则很有可能),则可以使用
创建随机样本数据帧df2 = df1.sample(frac = 0.1) # randomized sample, 10% of df1
df2 = df1.sample(frac=1) # randomized copy of all of df1
或
df2 = df1.sample(100) # randomized sample, 10 lines from df1
第一个参数将与用作参数的分数定义的df1
的大小有关,第二个参数将是100行,而不管df1
的大小如何。两者都是随机选择,随机排序的样本。
第二,您要遍历行。您正在按顺序将每一行传递给用户并等待输入。以下代码应该可以正常工作。
for idx,row in df2.iterrows():
d = input("Translate: " + row.English + " in German")
if d==row.German:
print("Good!") # Or another case for successful translation
else:
print("The correct answer was "+row.German) # Or another case for incorrect translation
s = input("Translate: " + row.English + " in Spanish")
if s==row.Spanish:
print("Good!")
else:
print("The correct answer was "+row.Spanish)