如何使用Pandas将下一行X/Y列值填充到上一行X2/Y2列?
用Pandas实现列值下移填充
你需要的是将X、Y列的内容向下偏移一行后填充到X2、Y2列,Pandas的shift()方法可以直接实现这个需求:
步骤示例
- 先模拟对应的数据结构:
import pandas as pd data = { 'Name': ['Anton', 'Brad', 'Mikel', 'Sofia'], 'X': [10, 20, 30, 40], 'Y': [100, 200, 300, 400], 'X2': [None, None, None, None], 'Y2': [None, None, None, None] } df = pd.DataFrame(data)
- 使用
shift(-1)方法将X、Y列下移一行,赋值给X2、Y2:
df['X2'] = df['X'].shift(-1) df['Y2'] = df['Y'].shift(-1)
执行后结果完全匹配你的需求:
- Anton的X2、Y2会填充Brad的X、Y值(20、200)
- Brad的X2、Y2会填充Mikel的X、Y值(30、300)
- Mikel的X2、Y2会填充Sofia的X、Y值(40、400)
- Sofia的X2、Y2因为没有下一行数据,会显示
NaN
如果需要替换最后一行的NaN,可以用fillna()补充自定义值:
df[['X2', 'Y2']] = df[['X2', 'Y2']].fillna(0) # 替换为0,可根据需求修改
内容的提问来源于stack exchange,提问作者WilliamAshoti
相关产品推荐
相关产品推荐

