我正在尝试遍历工作表中的所有行,但似乎只使用.rows仅限于返回100个项目。
s = pd.pivot_table(d, columns='n',
values='ts',
aggfunc=lambda x: (np.min(x) - pd.Timestamp('2016-07-15')).days)
s = s.values.astype(int)
print (s)
n
12 0
23 0
31 0
Name: ts, dtype: int64
无论我在那里有多少物品。
我做错了什么?
编辑:只是为了澄清,我试图对每一行做一些事情,而不是计算它们,这只是我注意到它只抓住100行的一个例子。
答案 0 :(得分:0)
听起来SDK可能正在执行获取工作表操作时使用分页 - 即,它只返回响应中的第一页结果,默认为100行。如API docs中所述,除非请求另行指定,否则页面大小默认为获取工作表响应中的100行。 (在文档中,请参阅 pageSize 和页面参数的说明。)
我建议您在调用获取工作表操作时查看SDK,以便指定 pageSize 和/或页面。
答案 1 :(得分:0)
默认情况下,get_sheet将返回包含100行的页面。包含标志:includeAll=true
以返回所有行。
有关详细信息,请参阅documentation on paging。
答案 2 :(得分:0)
重要的是要注意,当直接向Smartsheet API发出请求而不是通过Python SDK时,默认响应是包括工作表的所有行,而不需要包含page
或pageSize
参数。
答案 3 :(得分:0)
include_all
参数不属于get_sheet()
。
Python SDK 2.0 中的参数为page_size
,默认为100
。
my_sheet = smartsheet.Sheets.get_sheet(sheet_id, page_size=5000)
其中sheet_id
是您的工作表的ID。
如果您已有表单对象,则可以使用
my_sheet.total_row_count
获取行数并使用该行代替5000
。