每次循环都要重新遍历六千次,不可能快吧。把六千行那个 excel 的前三列和需要的数据做成 dict ,直接遍历四千行的那个 get 一下 dict ,一次完事,复杂度 O(1) 算下来都不需要 pandas 吧,如果不会用 excel 读写相关库当我没说,好像好多人习惯用 pandas 读取 excel 。 我习惯用 openpyxl 之类的读取 excel
大概率代码问题,问题描述其实没太看明白,但是 pandas 中逐行遍历是效率最低的一种做法。可以考虑能不能使用矢量化的方法替代,没有代码也不清楚。 stackoverflow 中有很多这方面的回答,可以去看看。
问题中提到 tb6k 后面第 5 8 10 行的内容赋值给 tb4k 后三列。这里是不是 5 8 10 列 打错了的话,就两个表格 join 一下(前面有回答提到了),然后使用索引取需要的列。 如果不是别无他法,遍历都是最次选,实在不行考虑 aplly 这些🤩
你代码呢? 首先,python 不能用 for loop 。 其次,pandas 稍微一点细节,性能差别就很大。比如 * .loc 或者直接索引比 .iloc 慢很多。 * .iteritems() 可能比 .itertuples() 慢。 * 不要按行取数据,因为 Pandas 是按列存的。你取出一行就有一行的临时对象。