我试图检查天气情况,我的台式电影的某一列中的年份是否为a年。如果是的话,我想对应的电影名称。
我尝试了以下代码
def leap_year(year):
if year%4==0:
if(year%100==0):
if(year%400==0):
return True
else:
return False
else:
return True
else:
return False
result=pd.read_sql_query("select m.name from movie m where m.year = {}".format(leap_year(m.year)),conn)
print(result)
我知道它不起作用,因为我无法直接通过m.year,但是我试图找到但无法获得正确的语法来做到这一点。
答案 0 :(得分:0)
使用calendar
import calendar
def leapyear(year):
result = calendar.isleap(year)
if result == True:
print(str(year) + ' is a leap year')
else:
print(str(year) + ' is not a leap year')
leapyear(2018)
使用sql列的年份作为函数的年份输入
答案 1 :(得分:0)
我不太了解您要如何使用您的代码...但是,这是我能想到的最好的方法
import sqlite3
def leap_year(year):
if year%4==0:
if(year%100==0):
if(year%400==0):
return True
else:
return False
else:
return True;
else:
return False
with sqlite3.connect("db.db") as conn:
cur = conn.cursor()
cur.execute("SELECT m.year FROM movie WHERE m.year = ?", (leap_year(m.year)))
results = cur.fetchall()
for result in results:
print(result)
答案 2 :(得分:0)
首先从表中选择所有年份和电影名称。您现在设置的方式是将其过滤到一年,这听起来并不像您想要的那样。
results = pd.read_sql_query("select name, year from movies", con=conn)
现在检查结果中的每一年并对其运行run年功能。
import calendar
for index, row in results.iterrows():
if calendar.isleap(row['year']):
print(row['name'])