如何在python中过滤数据

如何在python中过滤数据,python,pandas,Python,Pandas,我有一个类似于d1的数据集 import pandas as pd d1 = { 'customers': pd.Series([1, 1, 1, 2, 2, 3, 3, 4, 4]), 'channel': pd.Series(['a', 'a', 'b', 'c', 'a', 'a', 'b', 'b', 'c']), 'freq': pd.Series([3, 3, 3, 2, 2, 2, 2, 2, 2]) } d1=pd.DataFrame(d1) 我想得到只使用过两个不同渠道的客户

我有一个类似于
d1
的数据集

import pandas as pd
d1 = {
'customers': pd.Series([1, 1, 1, 2, 2, 3, 3, 4, 4]),
'channel': pd.Series(['a', 'a', 'b', 'c', 'a', 'a', 'b', 'b', 'c']),
'freq': pd.Series([3, 3, 3, 2, 2, 2, 2, 2, 2])
}
d1=pd.DataFrame(d1)
我想得到只使用过两个不同渠道的客户列表,渠道“a”是强制性的

例如。。第一位客户使用了两个不同的渠道“a”和“b”

第二位客户使用了“a”和“c”,第三位客户使用了“a”和“b”。但是客户4没有使用“a”频道等等

这就是你想要的吗

d1[d1.customers.isin(d1[(d1.freq==2) & (d1.channel=="a")].customers)]

  channel  customers  freq
3       c          2     2
4       a          2     2
5       a          3     2
6       b          3     2

HTH

No.freq=2表示客户将有两条记录。在这两条记录中,至少有一条记录应该在通道“a”中。但这不是数据帧包含的内容。我不明白。没有“记录”栏。请重新表述您的问题,并发布您想要的更精确的输出。(并在需要时更正输入)查看客户2,他有两条记录。在这两条记录中,第一条记录来自通道“c”,第二条记录来自通道“a”。我希望在我的产品中有这样的客户。看看顾客3,他和顾客2有相同的模式。@kondal,请修改你的问题