如何基于DataFrame第三列偏移取值填充新增的第四列
解决方案
你要实现的是把第三列向下偏移1行的需求,直接用pandas内置的shift()方法即可完成,操作非常简单。
假设你的原DataFrame命名为df,分两种情况写代码:
- 如果你知道第三列的列名,例如列名为
col3,新增的第四列命名为col4:
df['col4'] = df['col3'].shift(periods=1)
- 如果你要按位置取第三列(pandas列索引从0开始计数,第三列对应索引2):
df['col4'] = df.iloc[:, 2].shift(periods=1)
规则说明
shift(periods=1)参数表示把整列数据向下偏移1行,正好匹配你要求的「第四列第n行取第三列第n-1行值」的规则- 偏移后第四列的第一行自动填充空值,和你给出的示例中的N/A效果一致,不需要额外处理
- 如果你需要把空值替换成其他自定义值,可以链式调用
fillna()方法,示例:df['col4'] = df['col3'].shift(1).fillna('自定义值')
内容的提问来源于stack exchange,提问作者Newbie
相关产品推荐
相关产品推荐

