gpt4 book ai didi

python - pandas 查找 pandas 中两列之间的共同值的索引

转载 作者:行者123 更新时间:2023-12-01 01:08:34 24 4
gpt4 key购买 nike

我有一个数据框,如下所示:df1

Date and time   Price1  PrePrice
17.9.2018 9:47 1200.6 1204.8
17.9.2018 9:47 1200.6 1203.8
17.9.2018 9:47 1200.6 1202.1
17.9.2018 9:47 1200.6 1204.8
17.9.2018 9:47 1200.6 1204.8
17.9.2018 9:47 1200.6 1204.8
17.9.2018 9:47 1202.1 1204.8
17.9.2018 23:30 1200.7 1204.8
17.9.2018 23:31 1200.7 1204.8
17.9.2018 23:32 1200.6 1204.8
17.9.2018 23:33 1200.6 1204.8
17.9.2018 23:36 1200.7 1204.8
17.9.2018 23:47 1200.7 1204.8
17.9.2018 23:48 1200.6 1202.1
17.9.2018 23:50 1202.1 1200.9
17.9.2018 23:52 1203.8 1200.8
17.9.2018 23:55 1204.8 1200.7

我想获取两列 Price1,PrePrice 之间的共同值像这样:(1204.8; 17.9.2018 9:47; 17.9.2018 23:55)它尝试了这个方法,但是很慢:

c = [(i, j)  for i, x in enumerate(a) for j, y in enumerate(b) if x == y]

最佳答案

如果你想要它们在同一行上相等的地方,这是普通的 Pandas:

df1[df1.Price1 == df1.PrePrice]

(您的示例中没有。)

如果您想要所有共享值,您可以使用集合表示法:

c = set(df1.Price1).intersection(df1.PrePrice)
print(c)
> {1200.7, 1202.1, 1203.8, 1204.8}

根据这些时间,您可以使用 Price1 过滤日期和时间:

df1[df1.Price1.isin(c)][['Date and time', 'Price1']]

Date and time Price1
6 17.9.2018 9:47 1202.1
7 17.9.2018 23:30 1200.7
8 17.9.2018 23:31 1200.7
11 17.9.2018 23:36 1200.7
12 17.9.2018 23:47 1200.7
14 17.9.2018 23:50 1202.1
15 17.9.2018 23:52 1203.8
16 17.9.2018 23:55 1204.8

关于python - pandas 查找 pandas 中两列之间的共同值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55087685/

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