使用pandas制作python登录表单

使用pandas制作python登录表单,python,pandas,csv,Python,Pandas,Csv,我想用python创建一个登录表单。 我不知道如何修理它 有人能帮我修改错误脚本吗 main.py import requests, os, random, time import pandas as pd def login(): userData = pd.read_csv('Data.csv') df = pd.DataFrame(userData) username = df['username'] password = df['password'] print(

我想用python创建一个登录表单。
我不知道如何修理它
有人能帮我修改错误脚本吗

main.py

import requests, os, random, time
import pandas as pd

def login():
  userData = pd.read_csv('Data.csv')
  df = pd.DataFrame(userData)
  username = df['username']
  password = df['password']

  print('Login Tools\n')
  user = input('Username : ')
  pasw = input('Password : ')

  if usr == username and psw == password:
    print('success')
  else:
    print('\nYour account is not registered yet!')
    print('please contact admin')

login()
Data.csv

username,password
admin,admin
user,12345
rann,rann123
stackoverflow,stackoverflow123
错误输出

Traceback (most recent call last):
  File "main.py", line 23, in <module>
    login()
  File "main.py", line 18, in login
    if user == username and pasw == password:
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/pandas/core/generic.py", line 1329, in __nonzero__
    raise ValueError(
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
回溯(最近一次呼叫最后一次):
文件“main.py”,第23行,在
登录()
登录中第18行的文件“main.py”
如果user==用户名,pasw==密码:
文件“/opt/virtualenvs/python3/lib/python3.8/site packages/pandas/core/generic.py”,第1329行,在非零位__
升值误差(
ValueError:序列的真值不明确。请使用a.empty、a.bool()、a.item()、a.any()或a.all()。

用户名
和密码是
pd.Series
,因此无法执行此操作,您需要检查各列中是否有相应的输入

此外,在您的方法中,任何现有用户名和任何现有密码都有效-这不是您想要的

这里有一个替代方案:

def login():
  userData = pd.read_csv('Data.csv')
  df = pd.DataFrame(userData)

  print('Login Tools\n')
  user = input('Username : ')
  pasw = input('Password : ')
  
  matching_creds = (len(df[(df.username == user) & (df.password == pasw)]) > 0)

  if matching_creds:
    print('success')
  else:
    print('\nYour account is not registered yet!')
    print('please contact admin')