Я хочу объединить столбец pandas df по 2 критериям.
1) Сначала я хочу сгруппировать col1
2) Я хочу получить среднее значение col3, только если в col2 есть как минимум одна строка, совпадающая с 0, и как минимум одна строка, соответствующая 1.
Я попробовал некоторую комбинацию этого, но это, конечно, не работает:
df.groupby(['col1'])['col2'].isin([0 & 1]).col3.mean()
Так, например, если это мой df:
df = pd.DataFrame({
'col1' : ['a', 'a', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd'],
'col2' : [ 0, 0, 1, 0, 1, 1, 1, 0, 1, 0],
'col3' : [ 3, 4, 2, 4, 1, 2, 3, 5, 2, 1]
})
>>>
col1 col2 col3
0 a 0 3
1 a 0 4
2 b 1 2
3 b 0 4
4 c 1 1
5 c 1 2
6 c 1 3
7 d 0 5
8 d 1 2
9 d 0 1
То, что я хочу увидеть:
col1 col2 mean(col3)
b 1 2
b 0 4
d 0 3
d 1 2