I have a data set like 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)
I want to get list of customers who have used only two distinct channels and channels 'a' is mandatory.
For ex.. 1st customer has used two distinct channels 'a'& 'b'
2nd customer had used 'a' & 'c' 3rd customer used 'a' & 'b'. But customer 4 has not used channel 'a' and so on....
解决方案
Is this what you want ?
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