gpt4 book ai didi

python - 根据 python pandas 数据框中其他列的值计算新列

转载 作者:行者123 更新时间:2023-11-28 22:09:14 27 4
gpt4 key购买 nike

我想根据 pandas 数据框中其他列的值创建一个新列。我的数据是关于一辆卡车从装货地点来回移动到倾倒地点。我想计算当前路段到最后一段的距离。数据示例如下:

State      | segment length | 
-----------------------------
Loaded | 20 |
Loaded | 10 |
Loaded | 10 |
Empty | 15 |
Empty | 10 |
Empty | 10 |
Loaded | 30 |
Loaded | 20 |
Loaded | 10 |

因此,道路的尽头将是 State 变化的记录。因此我想计算到路尽头的距离。最终的数据框将是:

State   | segment length | Distance to end
Loaded | 20 | 40
Loaded | 10 | 20
Loaded | 10 | 10
Empty | 15 | 35
Empty | 10 | 20
Empty | 10 | 10
Loaded | 30 | 60
Loaded | 20 | 30
Loaded | 10 | 10

有人可以帮忙吗?提前谢谢你

最佳答案

使用GroupBy.cumsumDataFrame.iloc用于交换排序和自定义 Series 用于使用 shiftcumsum 获取唯一的连续组:

g = df['State'].ne(df['State'].shift()).cumsum()
df['Distance to end'] = df.iloc[::-1].groupby(g)['segment length'].cumsum()
print (df)
State segment length Distance to end
0 Loaded 20 40
1 Loaded 10 20
2 Loaded 10 10
3 Empty 15 35
4 Empty 10 20
5 Empty 10 10
6 Loaded 30 60
7 Loaded 20 30
8 Loaded 10 10

详细信息:

print (g)
0 1
1 1
2 1
3 2
4 2
5 2
6 3
7 3
8 3
Name: State, dtype: int32

关于python - 根据 python pandas 数据框中其他列的值计算新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57799371/

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