所以这是我正在尝试运行的查询示例:
import sqlite3
import pandas as pd
conn = sqlite3.connect('nfl_data.db')
c = conn.cursor()
newdf = c.execute("""SELECT name, SUM('Rush Yards')
FROM collegernr WHERE name ='Doug Martin'
GROUP BY name""")
df = pd.DataFrame(newdf.fetchall())
print(df)
我有几年大学统计数据的玩家,我想总结这些值,这样每个玩家的名字只出现一次,每列的值都是他们的大学总数。
对于每个返回的版本,运行此查询为每个行和列返回0(如果我包含更多变量并删除WHERE name ='Doug Martin'):
0 1
0 Doug Martin 0.0
所有感兴趣的列都被归类为REAL或INTEGER,并且没有NULL值,只有0,而在Doug Martin的情况下,甚至没有任何0,都是严格正值。
我起初认为年份专栏可能会产生问题,但删除它并没有解决任何问题。
任何帮助都会受到赞赏,我确信在看了这么长时间之后,我只是遗漏了一些明显的东西。如果我创建了一个重复的问题我很难道歉,我在搜索栏中找不到任何快速谷歌或搜索的内容
答案 0 :(得分:0)
MySQL正在将'Rush Yards'
解析为字符串文字。
在数值上下文中解释,计算结果为0.作为演示:
SELECT 'Rush Yards', 'Rush Yards' + 0
如果目的是引用列名,则标识符可以包含在反引号中:
SELECT `Rush Yards`, 'Rush Yards' FROM collegernr
^ ^
SELECT `name`
, SUM(`Rush Yards`)
FROM `collegernr`
WHERE `name` = 'Doug Martin'
GROUP BY `name`