如何使用pandas将行与python中的用户输入进行比较

时间:2018-04-19 06:55:57

标签: python pandas csv

以下是我需要检查的代码

name     password
admin    admin 
abc      xyz  

我不知道这是怎么做到的,但是我需要这样的东西,比较csv。

login.csv

{{1}}

2 个答案:

答案 0 :(得分:1)

最简单最简单的方法是使用iterrows()遍历数据帧的每一行,检查此更新的代码:

@app.route('/inner', methods=['GET', 'POST'])
def inner():
    name = request.form['name']
    password = request.form['password']
    if name == "" or password == "":
        return render_template('index.html');
    else:
        # Reading the file everytime will degrade the function performance
        df = pd.read_csv("login.csv", sep=',', encoding="utf-8")
        for index,row in df.iterrows():
            if row['name'] == name and row['password'] == password:
                print('sucess')
                return render_template('inner.html');
            else:
                return render_template('index.html');

答案 1 :(得分:0)

您正在遍历列而不是for row in df中的行。如果你想在行上进行操作,可以通过.loc或'iloc'访问它们,以进行基于位置的索引。

for ind in df.index:
    row = df.loc[ind]

for ind in range(len(df.index)):
    row = df.iloc[ind]

我相信你的代码应该如下:

else:
    df = pd.read_csv("login.csv", sep=',', encoding="utf-8")
    for ind in range(len(df.index)):
        if df.iloc[0, 0] == name and df.iloc[0, 1] == password:
            print('sucess')
            return render_template('inner.html');
        else:
            return render_template('index.html');