我希望输入字符串与具有固定行文件中的字符串匹配,然后减去该行的score列
1!!==我认为这是for循环从第一行到最后一行逐行查找匹配字符串
2!!==这是用于当输入字符串匹配时,将匹配行的分数减去1。
CSV文件:

article = pd.read_csv('Customer_List.txt', delimiter = ',',names = ['ID','NAME','LASTNAME','SCORE','TEL','PASS'])
y = len(article.ID)
line=article.readlines()
for x in range (0,y): # 1!!
if word in line :
newarticle = int(article.SCORE[x]) - 1 #2!!
print(newarticle)
else:
x = x + 1附言:我刚学了5天的python,请给我一个suggestion.Thank。
发布于 2019-08-04 00:58:04
既然我看到你在使用熊猫,我将给出一个没有任何循环的解决方案,因为它更容易。
例如,您拥有:
df = pd.DataFrame()
df['ID'] = [216, 217]
df['NAME'] = ['Chatchai', 'Bigm']
df['LASTNAME'] = ['Karuna', 'Koratuboy']
df['SCORE'] = [25, 15]您需要做的是:
lookfor = str(input("Enter the name: "))
df.loc[df.NAME == lookfor, 'SCORE']-= 1上面几行中发生的事情是,您查找在数据帧的NAME列中输入的名称,如果存在匹配,则查找reduce the score by 1,如果我理解您的问题,这就是您想要的。
示例:
现在,假设您正在寻找一个名为Alex的人,因为没有这样的人,所以您必须得到相同的数据帧。
Enter the name: Alex
ID NAME LASTNAME SCORE
0 216 Chatchai Karuna 25
1 217 Bigm Koratuboy 15现在,假设你正在寻找一个叫Chatchai的人,因为有一个匹配,并且你想要减少分数,你将得到:输入名字: Chatchai
ID NAME LASTNAME SCORE
0 216 Chatchai Karuna 24
1 217 Bigm Koratuboy 15https://stackoverflow.com/questions/57340167
复制相似问题