如何在Pandas DataFrame中按前一行值新增指定数量id为空的行
原有代码存在两个问题:
append方法已在Pandas 2.0+版本正式弃用,不仅性能低下,运行时还会触发警告df.tail(1).add(1)会对所有列统一执行加1操作,导致id列也被修改,不符合需求
推荐实现方案
不需要循环拼接,直接生成指定长度的新数据再合并即可,性能更高写法也更简洁:
import numpy as np n = 30 # 取现有number列的最大值 current_max_num = df['number'].max() # 构造新行数据 new_df = pd.DataFrame( { 'id': [np.nan] * n, 'number': range(current_max_num + 1, current_max_num + n + 1) } ) # 合并原有数据和新数据,重置索引 df = pd.concat([df, new_df], ignore_index=True)
执行后即可得到预期结果:原有数据保持不变,新增30行的id列为空值,number列从7开始依次递增到36。
内容的提问来源于stack exchange,提问作者Tmiskiewicz
相关产品推荐
相关产品推荐

