如何基于Pandas DataFrame中某列的连续两行生成新列
从Pandas DataFrame的列A生成列B的方法
根据你提供的规则和示例数据,列B的生成逻辑为:
- 第1行的B值等于第1行的A值
- 从第2行开始,每行的B值等于上一行的A值加上当前行的A值
代码实现
首先构造示例DataFrame:
import pandas as pd df = pd.DataFrame({'A': [1, 1, 2, 5]})
方法一:使用shift()方法
# 初始化B列为A列的副本 df['B'] = df['A'] # 更新第2行及以后的B值 df.loc[1:, 'B'] = df['A'].shift(1) + df['A']
方法二:通过切片直接计算
df['B'] = df['A'].copy() # 取A列除最后一行外的部分,与除第一行外的部分相加,赋值给B列从第二行开始的位置 df['B'].iloc[1:] = df['A'].iloc[:-1] + df['A'].iloc[1:]
执行上述代码后,DataFrame的B列将得到预期结果:[1, 2, 3, 7]
内容的提问来源于stack exchange,提问作者Marim medhat
相关产品推荐
相关产品推荐

