如何在列数动态变化的DataFrame末尾新增3个空列避免IndexError
问题原因
硬编码插入列的位置索引不符合列数动态变化的场景,当DataFrame实际总列数小于你指定的插入索引时,就会触发IndexError越界报错。
调整方案
方案1:动态计算插入位置(保留insert写法)
通过len(DataFrame.columns)动态获取当前总列数,该值刚好是末尾插入新列的起始索引,无需关注当月实际列数:
# 获取当前总列数作为插入起始位置 col_total = len(netnewprocess.columns) netnewprocess.insert(col_total, 'date', '') netnewprocess.insert(col_total + 1, 'Analyst Review', '') netnewprocess.insert(col_total + 2, 'SM Review', '')
方案2:直接赋值新增列(更简洁)
如果只是要在末尾追加列,不需要严格指定插入位置,直接赋值即可,完全不会触发索引问题:
netnewprocess['date'] = '' netnewprocess['Analyst Review'] = '' netnewprocess['SM Review'] = ''
内容的提问来源于stack exchange,提问作者Jonnyboi
相关产品推荐
相关产品推荐

