У меня есть dataframe, который имеет два столбца 'a' и 'b'. Я хочу создать новый столбец, который будет иметь значение, полученное с помощью инструкции sql. Как я могу добиться того же в Панде.Создание новых столбцов на основе групповой и логической фильтрации
DF [ 'с'] = Выберите 'а', граф (случай, когда == 'B' 1, то 'а' еще нуль-конец) из ДФ группе 'а'
df = pd.DataFrame({'a':['a','a','b','a','b'], 'b' : [1,0,0,1,1]})
df = a b
0 a 1
1 a 0
2 b 0
3 a 1
4 b 1
Я попытался ниже
df['c'] = df.groupby('a').apply(lambda x : x[x['b']==1]['a'].count()).reset_index().ix[:,-1]
но ошибались из положить
a b c
0 a 1 2
1 a 0 0
2 b 0 NaN
3 a 1 NaN
4 b 1 NaN
enter code here
я ожидаю 2, NAN, NaN, 2,1 высоко оценят всю помощь и guidan се
Привет Энди, Спасибо за вход. Он работает очень хорошо, но мне нужно много работать в подобной ситуации. Например, в одном из них мне нужно вычислить ранг, а не считать. Если вы хотите, я могу создать для вас другую должность. Я очень ценю вашу помощь в этом. –
@piyushsharma задайте новый вопрос. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work Это говорит о том, что есть метод группового ранжирования, который делает именно это :) –
Спасибо Andy, я выложу новый вопрос. Я знаю, что есть группа по рангу, но задача до сих пор заключается в том, чтобы объединить это с логическим оператором другого столбца, а затем применить ко всем строкам. Я действительно ценю твою помощь. –