gpt4 book ai didi

python - 根据多列(可能包含多个值)识别重复,如果在python中识别重复则返回 bool 值

转载 作者:行者123 更新时间:2023-12-01 23:48:47 25 4
gpt4 key购买 nike

这是一个相当简单的查询,但我没有找到任何与我的查询相关的解决方案。我必须根据多列来识别重复项。不同之处在于,一列可以在一行中有多个值,需要将其视为单独的值。

例子:

dct ={'store':('A','A','A','A','A','B','B','B','C','C','C','C'),
'station':('aisle','aisle','aisle','window','window','aisle','aisle','aisle','aisle','window','window','window'),
'produce':('apple','apple','cherry, apple','orange','orange','apple','apple,orange','orange','apple','apple','apple','orange')}

df = pd.DataFrame(dct)


print(df)

store station produce
0 A aisle apple
1 A aisle apple
2 A aisle cherry, apple
3 A window orange
4 A window orange
5 B aisle apple
6 B aisle apple,orange
7 B aisle orange
8 C aisle apple
9 C window apple
10 C window apple
11 C window orange

预期数据框:

store  station    produce          result
A aisle apple False
A aisle apple False
A aisle cherry,apple False
A window orange True
A window orange True
B aisle apple False
B aisle apple,orange False
B aisle orange False
C aisle apple True --> not duplicated; 'station' is diff
C window apple False
C window apple False
C window orange True

我一直在使用 df.duplicated(subset=['store','station','produce'], keep=False)但是它丢失了一行中具有多个值的数据,知道如何解决这个问题吗?
可选添加:类似于“keep”的功能(确定要标记哪些重复项(如果有的话))first/last/false

最后一部分完全是可选的,不是必须的:-)

最佳答案

让我们做

df['New'] = df.assign(produce=df['produce'].str.split(', ')).\
explode('produce').\
duplicated(subset=['store', 'station', 'produce'], keep=False).any(level=0)

Out[160]:
0 True
1 True
2 True
3 True
4 True
5 True
6 True
7 True
8 False
9 True
10 True
11 False
dtype: bool

关于python - 根据多列(可能包含多个值)识别重复,如果在python中识别重复则返回 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63769858/

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