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