如何快速重命名Pandas DataFrame中11个同名的subsidence列?
高效重命名Pandas多列的方法
当然有!直接给DataFrame的columns属性赋值绝对是比df.rename()更快的方案——毕竟rename()默认会创建列名映射并返回新的DataFrame副本,而直接修改列名是更直接的原地操作,省去了额外的逻辑开销,效率提升很明显。
具体实现代码
你可以用列表推导式快速生成按顺序命名的列名列表,直接赋值给df.columns:
import pandas as pd # 假设你的DataFrame是df df.columns = [f"subsidence {i}" for i in range(1, 12)]
为什么这个方法更快?
df.rename()需要处理字典映射,还会判断是否返回副本(即使使用inplace=True,内部逻辑依然比直接赋值复杂)。- 直接赋值列名列表是对DataFrame列名属性的直接修改,没有额外的中间步骤,在数据量较大时,速度差异会更显著。
另外,这个方法完全能保证列的顺序和原DataFrame一致,刚好对应你需要的"subsidence 1"到"subsidence 11"的顺序,不用担心错位问题。
内容的提问来源于stack exchange,提问作者user9454050
相关产品推荐
相关产品推荐

