如何创建一列,使其值为另一列的上一行值?
解决方案:创建以上一行col_b值为内容的新列
你可以使用pandas的shift()函数实现需求,shift(1)会将col_b的元素向下偏移一行,再把第一行的缺失值替换为col_b的首个值即可。
代码示例
import pandas as pd # 构造原始数据集 data = { 'col_a': ['x', 'y', 'z', 'k', 'H'], 'col_b': [189, 33, 0, 837, 33] } df = pd.DataFrame(data) # 创建目标新列 df['new_col'] = df['col_b'].shift(1).fillna(df['col_b'].iloc[0])
执行结果
| col_a | col_b | new_col |
|---|---|---|
| x | 189 | 189.0 |
| y | 33 | 189.0 |
| z | 0 | 33.0 |
| k | 837 | 0.0 |
| H | 33 | 837.0 |
如果需要将new_col转为整数类型,可添加一行代码:
df['new_col'] = df['new_col'].astype(int)
内容的提问来源于stack exchange,提问作者user14738548
相关产品推荐
相关产品推荐

