我有一个student表,它包含student_id
、course_id
和{student_id
和exam_time
为中心来计算一次或一天中的考试次数。我正在建立一个时间表启发式,改变一次一次考试的次数,所以我需要更新这个透视表很多次。一门课程考试时间的改变会影响原始数据帧中平均50行的数据。有没有一种方法可以在不重新计算pandas中的整个数据透视表的情况下更新得到的数据透视表,或者我应该自己跟踪数据透视表上的变化(即通过在更改的数据槽中加上或减去1)?在
编辑:下面是我如何构造透视表。我加了一列1来计算数字np.总和. 我找不到另一个运行速度更快的函数。在
sLength = len(df["student_id"])
df["ones"] = pd.Series(np.ones(sLength))
pivot_table = pd.pivot_table(df, rows = "student_id", cols = "exam_time", values = "ones", aggfunc = np.sum)
对于考试时间的变化,我写了这个(假设changed_course
从old_slot
移到{
下面是示例代码,其思想是通过减去旧行的pivot表和添加新行的pivot表来更新total pivot表。在
所以每次更改数据时,都要调用两次
pivot_table()
,一次调用add()
,一次调用sub()
:相关问题 更多 >
编程相关推荐