我正在尝试以下代码
" "
假设第一个df = pd.DataFrame([[23, 52], [36, 49], [52, 61], [75, 82], [97, 12]], columns=['A', 'B'])
df['C'] = np.where(df['A'] > df['C'].shift(), df['A'], df['C'].shift())
print(df)
操作应假设为0(因为df['C].shift()
不存在)
预期输出
df['C']
但我收到了KeyError异常。
A B C
0 23 52 23
1 36 49 36
2 12 61 36
3 75 82 75
4 70 12 75
根据我的理解,这种情况正在发生,因为C列第一次不存在,所以移动列会抛出此异常。
我的问题是有另一种解决这个问题的方法吗?
答案 0 :(得分:6)
您需要cummax
:
df['C'] = df.A.cummax()