假设一个数据帧scoreDF:
date time score
sec_code
1048 2015-02-25 09:21:00 28
2888 2015-02-25 09:21:00 25
945 2015-02-25 09:21:00 23
4 2015-02-25 09:21:00 22
669 2015-02-25 09:21:00 15
Run Code Online (Sandbox Code Playgroud)
我需要做一个MySQL查询检索匹配值的所有行scoreDF.index即sec_code列.
通常我会去一个循环:
finalResultDF = DataFrame()
queryString = 'SELECT * FROM tableA WHERE sec_code = ' + code
for code in scoreDF.index:
queryResultDF = sql.read_sql(queryString, con)
finalResultDF.append(queryResultDF)
Run Code Online (Sandbox Code Playgroud)
如果没有循环传递值列表(即scoreDF.indexWHERE条件),是否可以以不同方式执行此操作?我用谷歌搜索了几个小时,有些人提到'参数',read_sql但我无法理解.
我需要查询带有3个条件的子句的HDF5文件,where条件之一是长度为30的列表:
myList = list(xrange(30))
h5DF = pd.read_hdf(h5Filename, 'df', where='index=myList & date=dateString & time=timeString')
Run Code Online (Sandbox Code Playgroud)
上面的查询给了我ValueError: too many inputs,错误是可重现的。
如果我将清单的长度减少到29(三个条件):
myList = list(xrange(29))
h5DF = pd.read_hdf(h5Filename, 'df', where='index=myList & date=dateString & time=timeString')
Run Code Online (Sandbox Code Playgroud)
或条件数只能为两个(列表长度为30):
然后执行正常:
myList = list(xrange(30))
h5DF = pd.read_hdf(h5Filename, 'df', where='index=myList & time=timeString')
Run Code Online (Sandbox Code Playgroud)
这是已知限制吗?http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.pytables.read_hdf.html上的pandas文档没有提及此限制,在搜索此论坛后似乎没人遇到此限制。
版本是pandas 0.15.2。任何帮助表示赞赏。