gpt4 book ai didi

python - Pandas - 如何创建从连续两行中的值派生的新列?

转载 作者:行者123 更新时间:2023-12-02 02:33:27 25 4
gpt4 key购买 nike

我有以下数据框 -

ID    Name   Distance   Time   Base    Height
1 A 10 2 12 2
2 A 20 4 14 3
3 B 30 6 16 4
4 B 40 8 18 5
5 C 50 10 20 6
6 C 60 12 22 8

我想创建新列Speed、Tarea、Speed_ratio、Tarea_ratio,其值源自名称为A,B,C的行中的值,如下 -

ID    Name   Distance   Time   Base    Height   Speed    Tarea    Speed_ratio   Tarea_ratio
1 A 10 2 12 2 5 12 1 0.5714
2 A 20 4 14 3 5 21 NA NA
3 B 30 6 16 4 5 32 1 0.7111
4 B 40 8 18 5 5 45 NA NA
5 C 50 10 20 6 5 60 1 0.6818
6 C 60 12 22 8 5 88 NA NA

这可以做到吗?谢谢。

最佳答案

您可以执行以下操作:

In [431]: df['Speed'] = df.Distance.div(df.Time)
In [433]: df['Tarea'] = df.Base.mul(df.Height)/2

In [447]: df['Speed_ratio'] = df.Speed / df.groupby('Name').Speed.shift(-1)

In [450]: df['Tarea_ratio'] = df.Tarea / df.groupby('Name').Tarea.shift(-1)

In [451]: df
Out[451]:
ID Name Distance Time Base Height Speed Tarea Speed_ratio Tarea_ratio
0 1 A 10 2 12 2 5.0 12.0 1.0 0.571429
1 2 A 20 4 14 3 5.0 21.0 NaN NaN
2 3 B 30 6 16 4 5.0 32.0 1.0 0.711111
3 4 B 40 8 18 5 5.0 45.0 NaN NaN
4 5 C 50 10 20 6 5.0 60.0 1.0 0.681818
5 6 C 60 12 22 8 5.0 88.0 NaN NaN

关于python - Pandas - 如何创建从连续两行中的值派生的新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64691558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com