gpt4 book ai didi

python-3.x - Pandas:检查一列是否存在于另一列中

转载 作者:行者123 更新时间:2023-12-04 01:37:45 25 4
gpt4 key购买 nike

我是 Python 和 Pandas 的新手。我有一个具有以下结构的数据集。这是一只 Pandas DF

city time1              time2
a [1991, 1992, 1993] [1993,1994,1995]

time1 和 time2 代表两个来源的数据覆盖率。我想创建一个新列,指示 time1 和 time2 是否有任何交集,如果有则返回 True,否则返回 False。这项任务听起来非常简单。我正在考虑在两列上使用集合操作,但它没有按预期工作。谁能帮我解决这个问题?

谢谢!

感谢您的帮助。

最佳答案

您可以遍历所有列并将列表更改为集合,并查看交集中是否有任何值。

df1 = df.applymap(lambda x: set(x) if type(x) == list else set([x]))
df1.apply(lambda x: bool(x.time1 & x.time2), axis=1)

这是一种半向量化的方式,应该可以让它运行得更快。

df1 = df[['time1', 'time2']].applymap(lambda x: set(x) if type(x) == list else set([x]))
(df1.time1.values & df1.time2.values).astype(bool)

甚至更快

change_to_set = lambda x: set(x) if type(x) == list else set([x])
time1_set = df.time1.map(change_to_set).values
time2_set = df.time2.map(change_to_set).values
(time1_set & time2_set).astype(bool)

关于python-3.x - Pandas:检查一列是否存在于另一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44789003/

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