我正在将一个excel电子表格加载到一个sql表中,并且能够看到它(这是可行的)。我想找出有多少记录符合特定的标准。在第1列和第2列中有名称,理想情况下,我想知道列表中每对名称出现的次数。我尝试从simple开始,能够使用pandas访问excel数据,创建表格(results - create pairings),并选择特定名称对(df.to_sql = engines.execute)的所有实例。
请帮助我了解如何使用results命令访问找到的实例数。这就是python --任何帮助我们都将不胜感激。提前谢谢。
import sqlite3
import pandas as pd
from sqlalchemy import create_engine
file = 'C:/Users/Pinev/Desktop/Pairings_List.xlsx' # Excel input file
#output = '' # Excel output file
engine = create_engine('sqlite://', echo = False)
df = pd.read_excel(file, sheet_name ='Pairings_List')
print(df)
df.to_sql('pairings', engine, if_exists = 'replace', index = False)
print("5")
print(df)
results = engine.execute("Select * from pairings where Player1 = 'Bazoian, Scott'\
AND Player2 = 'Brady, Brian'")
final = pd.DataFrame(results, columns = df.columns)
print("data Loaded")
print(final)
count = engine.execute("select count(*) from pairings")
print("count = ", count)发布于 2020-07-23 23:13:25
我可能会推荐这种方法
import sqlite3
import pandas as pd
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.automap import automap_base
engine = create_engine('sqlite://', echo = False)
base = automap_base()
base.prepare(engine, reflect=True)
our_table = base.classes.pairings
Session = sessionmaker(bind=engine)
s = Session()
results = s.query(our_table).filter_by(Player1='Bazoian, Scott', Player2='Brady, Brian').all()
s.commit()提交将结束您的会话,您可以使用filter_by作为字符串中的"WHERE“。all()将打印出它将找到的所有结果,也可以使用first()仅打印第一个结果,要进行计数,可以使用count()
您可以通过简单的方式访问它,例如,如果您想要查看列名
for player in results:
print(player.Name)https://stackoverflow.com/questions/63056689
复制相似问题