gpt4 book ai didi

Python 数据帧 : find previous row's value before a specific value with same value in other columns

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:32 27 4
gpt4 key购买 nike

我有一个数据名如下

import pandas as pd
d = {
'Name' : ['James', 'John', 'Peter', 'Thomas', 'Jacob', 'Andrew','John', 'Peter', 'Thomas', 'Jacob', 'Peter', 'Thomas'],
'Order' : [1,1,1,1,1,1,2,2,2,2,3,3],
'Place' : ['Paris', 'London', 'Rome','Paris', 'Venice', 'Rome', 'Paris', 'Paris', 'London', 'Paris', 'Milan', 'Milan']
}

df = pd.DataFrame(d)

      Name  Order   Place
0 James 1 Paris
1 John 1 London
2 Peter 1 Rome
3 Thomas 1 Paris
4 Jacob 1 Venice
5 Andrew 1 Rome
6 John 2 Paris
7 Peter 2 Paris
8 Thomas 2 London
9 Jacob 2 Paris
10 Peter 3 Milan
11 Thomas 3 Milan
[Finished in 0.7s]

dataframe 表示访问各个城市的人,Order 列定义访问顺序。

我想找到人们在 Paris 之前访问过哪个城市。预期数据框如下

     Name  Order   Place

1 John 1 London
2 Peter 1 Rome
4 Jacob 1 Venice

找到它的 pythonic 方法是什么?

最佳答案

使用合并

s = df.loc[df.Place.eq('Paris'), ['Name', 'Order']]
m = s.assign(Order=s.Order.sub(1))

m.merge(df, on=['Name', 'Order'])

    Name  Order   Place
0 John 1 London
1 Peter 1 Rome
2 Jacob 1 Venice

关于Python 数据帧 : find previous row's value before a specific value with same value in other columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58456286/

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