gpt4 book ai didi

python - 在 pandas 中查找一列中的共同值与另一列中的不同值

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:36 24 4
gpt4 key购买 nike

我有一个像这样的数据框

event    cust
et1 satya
et1 papu
et1 abc
et1 satya
et1 def
et2 papu
et2 satya
et2 panda
et3 normal
et3 panda
et3 satya
et3 fgh

现在我需要找出所有 3 种类型的事件都存在的“cust”。所以这应该会产生

event  cust
et1 satya
et1 satya

不用担心不同(可以删除重复项)。为此我的方法是

x  = df[df['event'] == 'et1']
y = df[df['event'] == 'et2']
z = df[df['event'] == 'et3']
df_common = x[x['cust'].isin(y[y['cust'].isin(z.cust)]['cust'])]

但这在这种情况下是不合适的,因为 DataFrame 大小很大,我必须为 50-100 多个事件找到共同的客户。

请建议一些 pandas/more-pythonic 方法来做到这一点。提前致谢。

最佳答案

你可以尝试:

#first drop duplicates in each group by event
df = df.drop_duplicates(['event','cust'])

#count values
counts = df.cust.value_counts()
print counts
satya 3
panda 2
papu 2
def 1
normal 1
fgh 1
abc 1
Name: cust, dtype: int64

#get number of unique events
uniqevents = df.event.nunique()
print uniqevents
3
#get values with count == uniqevents
counts = counts[counts == uniqevents]
print counts
satya 3
Name: cust, dtype: int64

print counts.index.to_series().reset_index(drop=True)
0 satya
dtype: object

关于python - 在 pandas 中查找一列中的共同值与另一列中的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443105/

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