pandas追加Series列表时如何保留DataFrame的索引名称
解决pandas批量append Series丢失索引名称的问题
这个现象是pandas旧版本append方法的已知缺陷:传入单个Series时能继承原DataFrame的index.name,传入Series列表时会清空索引名称,本质是批量拼接逻辑没有继承原DataFrame的索引元数据。
解决方案
方案1:手动补回索引名
代码改动最小,适合仍然习惯使用append的场景:
res = df.append([serc, serd]) res.index.name = df.index.name
方案2:用官方推荐的pd.concat替代(更推荐)
pandas 1.4及以上版本已经正式弃用DataFrame.append方法,统一用pd.concat处理拼接需求,该方法天然会保留原DataFrame的索引元数据,无需额外处理:
# 将待追加的Series列表转为DataFrame add_df = pd.DataFrame([serc, serd]) # 纵向拼接两个DataFrame res = pd.concat([df, add_df])
两种方案最终得到的结果都和逐次append的效果完全一致,原索引名称keepthisname会正常保留。
内容的提问来源于stack exchange,提问作者user3673
相关产品推荐
相关产品推荐

