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

伯南多·珀尔巴

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

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

因此,这条路的尽头将是国家变化的记录。因此,我想计算到道路尽头的距离。最终的数据帧将是:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据其他列中的值对Pandas数据框进行计数

根据其他列数据框中的值添加列

根据python pandas中其他列的值创建新列

python pandas-根据其他数据框的列中的值获取数据框

根据其他列替换数据框中的列值

根据其他列中的值计算数据框中的值总和

根据其他两个数据框列中的值条件创建新列

根据列对数据框中的日期进行排序,并使用Pandas保持其他列的值

根据其他列的行值填充新的pandas数据框列

根据其他列中的值设置pandas数据框中的列值

根据数据框的其他列创建一个新的pandas数据框列

根据R中其他数据框中是否存在值,将新值添加到新列中

根据其他列中的值在python 3(pandas)数据框中创建新列

根据匹配值从其他数据框中复制列

根据其他2个数据框中的值创建新列

根据其他列行中的过滤值,在pandas数据框中创建一个新列

根据Pandas数据框中的其他三列更改一列的值

根据其他列在python pandas数据框中创建子列表的最大值

根据pandas数据框中的其他列创建新列

根据其他列更改数据框列中的值(python)

根据熊猫数据框中其他列的条件和值创建新列

如何根据python中其他列的条件计算值?

根据数据框中其他列中的分组值计算列的平均值

如何根据其他列(Python)将值放入数据框的列中?

根据其他列值/ Pandas -Python 在数据框中创建 ID 列

Pandas:根据其他列中的值变化删除数据框的百分比

如何根据其他两列中的值在熊猫数据框中添加新列

根据列的值和来自其他数据框的值向数据框添加新的 cloumn

Python pandas - groupby之后,如何根据其他列中的值创建新列