首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在df中匹配输入数据和a数据,for loop minus

如何在df中匹配输入数据和a数据,for loop minus
EN

Stack Overflow用户
提问于 2019-08-04 00:26:26
回答 1查看 37关注 0票数 0

我希望输入字符串与具有固定行文件中的字符串匹配,然后减去该行的score列

1!!==我认为这是for循环从第一行到最后一行逐行查找匹配字符串

2!!==这是用于当输入字符串匹配时,将匹配行的分数减去1。

CSV文件:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

发布于 2019-08-04 00:58:04

既然我看到你在使用熊猫,我将给出一个没有任何循环的解决方案,因为它更容易。

例如,您拥有:

代码语言:javascript
复制
df = pd.DataFrame()
df['ID'] = [216, 217]
df['NAME'] = ['Chatchai', 'Bigm']
df['LASTNAME'] = ['Karuna', 'Koratuboy']
df['SCORE'] = [25, 15]

您需要做的是:

代码语言:javascript
复制
lookfor = str(input("Enter the name: ")) 
df.loc[df.NAME == lookfor, 'SCORE']-= 1

上面几行中发生的事情是,您查找在数据帧的NAME列中输入的名称,如果存在匹配,则查找reduce the score by 1,如果我理解您的问题,这就是您想要的。

示例:

现在,假设您正在寻找一个名为Alex的人,因为没有这样的人,所以您必须得到相同的数据帧。

代码语言:javascript
复制
Enter the name: Alex
    ID      NAME   LASTNAME  SCORE
0  216  Chatchai     Karuna     25
1  217      Bigm  Koratuboy     15

现在,假设你正在寻找一个叫Chatchai的人,因为有一个匹配,并且你想要减少分数,你将得到:输入名字: Chatchai

代码语言:javascript
复制
    ID      NAME   LASTNAME  SCORE
0  216  Chatchai     Karuna     24
1  217      Bigm  Koratuboy     15
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57340167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档