Python DataFrame:在其他列中具有相同值的特定值之前找到上一行的值

弗朗西斯亲王

我有如下数据资料

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]

数据框代表访问各个城市的人,Order列定义访问顺序。

我想知道以前去过哪个城市的人Paris预期的数据帧如下

     Name  Order   Place

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

找到它的pythonic方法是什么?

拉斐尔克

使用 merge

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

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:仅在其他列中具有特定值的行中计算列中的值

获取列中具有特定值的最后一行,Python

在Python中的其他列列表中选择具有列值的行

如何使用Python Win32com在Excel中查找最后一行是否具有特定列的值

Python / CSV唯一行,列中每行具有唯一值

Python。解析 csv 文件。如果下一行具有重复值,则将值附加到上一行

查找另一列中具有相同值的行-Python

Python,合并具有相同ID的行-日期,但一列中的值不同

Python pandas数据框,检查列值是否与每一行的其他列值匹配

将具有特定单词的字符串值传输到数据框 pandas,python 中的其他列

如何使用Python获取另一列中具有相同值的值的总和?

Python Pandas:根据其他列中的唯一标识符创建具有最小值的新列

使用列表作为值的Python字典,查找具有相同值的其他键

用零填充行其他列具有某个值,否则其他列不具有值在python pandas中用NaN填充它

Python数据框:在同一行中查找与在另一列中定义的值相同的值

获取所有在python中具有相同值的行?

Python Pandas保留第一次出现的特定值,并删除其余具有相同特定值的行

在 python 中的一行中存储特定值

在Python中找到满足条件的列中的第一行(值大于x)

计算Python中每一行中特定列的下3行的最大值

更新列的值,该值取决于python中同一DataFrame中存在的其他列

如何提取与特定列中的日期具有相同日期的值?(在python中)

查找一列 .csv 文件中的值是否在其他 .csv 文件 Python 中可用

Python:如果其他两列在同一行中包含“否”字符串,则从行中删除字符串值

Pandas DataFrame-删除特定列中与上一行具有相同值的行

Python Pandas-过滤pandas数据框以获取一行中具有最小值的行,而另一行中的每个唯一值

在第一列相同的所有行中找到Pandas,Python中的最小值,最大值,平均值

如何基于python中其他列的索引值复制相同的值

Python Pandas:如果键在其他列中,则如何为新列分配值