这是我的DataFrame:
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
列中的值与其前一个值进行比较,选取较大的一个。
例如对于第1行,将90与101进行比较,由于101较大,所以选择101。
我已经用以下方法实现了这个过程:
df['x'] = df.a.shift(1)
df['y'] = df[['a', 'x']].max(axis=1)
有没有更简洁或内置的方式来实现这个操作呢?
翻译结果:
这是我的DataFrame:
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
列的数值与其前一项进行比较,并选取较大的值。
例如在第1行中,将90与前一项101进行比较,由于101较大,因此选取101。
目前我是这样实现的:
df['x'] = df.a.shift(1)
df['y'] = df[['a', 'x']].max(axis=1)
请问有没有更优雅或利用Pandas内置功能实现这一需求的方法?