Pandas Series是否保留顺序?openpyxl写入Excel的一致性确认
Pandas与OpenPyXL写入Excel的顺序一致性问题解答
能否保证数据对应关系一致?
可以完全保证写入test.xlsx的内容和原DataFrame的行对应关系一致,john对应20、gibbs对应18、jane对应25的关联不会错乱。
你的代码从DataFrame中分别提取Name和Age列的Series,再按行顺序逐列写入Excel。由于这两个Series来自同一个DataFrame,它们的行顺序完全同步,遍历写入时每一行的位置会精准对应。
Pandas DataFrame/Series的顺序是否稳定?
你的推测完全正确:
- Pandas 1.0及以后版本中,DataFrame和Series默认是有序容器,会严格保留数据的初始加载/插入顺序,只有主动执行修改顺序的操作(如
sort_values()、reindex()、手动调整索引等)才会改变顺序。 - 通过
df.loc[:, '列名']提取的Series,会完整继承原DataFrame的行顺序,因此names和ages两个Series的行位置是一一对应的,不会出现错位。
额外优化建议(非必须)
如果担心后续操作意外修改索引顺序,可以修改写入函数,绑定索引和数据的对应关系,进一步确保准确性:
def write_by_col(ws, col, col_no): # 从第1行开始,遍历Series的索引和数据 for row_num, (_, data) in enumerate(col.items(), start=1): ws.cell(row=row_num, column=col_no).value = data
内容的提问来源于stack exchange,提问作者Paulo
相关产品推荐
相关产品推荐

