Python Pandas新增列并引用前一行值的实现问题求解
你需要实现的C_i列计算逻辑是Time列的逐行累计求和,直接使用pandas内置的cumsum()方法即可完成,完整可运行代码如下:
import pandas as pd import sympy as sp import numpy as np dane = pd.read_excel(r'/Users/artur/Desktop/Studia/V semestr/IO/Sprawozdanie1_dane.xlsx') # 按D_i列排序,ignore_index=True会重置行索引为从0开始的连续值,避免后续操作出现索引混乱 daneSortowane = dane.sort_values('Termin (D_i)', ignore_index=True) # 新增C_i列,对Time列做累计求和 daneSortowane['C_i'] = daneSortowane['Time'].cumsum() # 如果需要将结果导出为新Excel文件,可取消注释下面这行 # daneSortowane.to_excel('计算结果.xlsx', index=False)
说明:
cumsum()会严格按照当前DataFrame的行顺序计算累计值,完全匹配你的需求:第一行取对应行Time列的值,从第二行开始每一行的值为当前行Time值加上上一行C_i的值。- 如果你表格里存储时间的列名不是
Time,把代码里的'Time'替换为你实际的列名即可。 - 最终实现效果参考下图:

内容的提问来源于stack exchange,提问作者focus87krk
相关产品推荐
相关产品推荐

