这是我的数据框:
import pandas as pd
df = pd.DataFrame(
{
'a': [101, 90, 11, 120, 1]
}
)
这就是我想要的输出。我想创建专栏y
:
a y
0 101 101.0
1 90 101.0
2 11 90.0
3 120 120.0
4 1 120.0
基本上,将 中的值a
与其先前的值进行比较,并选择较大的值。
例如,对于 row 1
,将 90 与 101 进行比较。101 更大,因此选择它。
我是这样做的:
df['x'] = df.a.shift(1)
df['y'] = df[['a', 'x']].max(axis=1)
是否有清洁剂或某种内置方法可以做到这一点?
您可以使用它
np.fmax
来获取最大值,而无需创建额外的列:这输出:
我们过去常常
np.fmax()
忽略NaN
shift时创建的df["a"]
。