У меня есть таблица, которая имеет около 31 миллиона записей.Существует около 10 столбцов, два из которых - номер карты и транзакция_стата.Каждая карточка может иметь несколько рядов.таким образом, может быть 2000 строк одной и той же карты, причем каждая строка в качестве транзакции с соответствующим статусом
action_Status имеет значение «Y» / «N».
я хочу добавить еще две колонки к этой таблице: «count_of_approved», «count_of_rejected» с использованием pandas dataframe.
Как мне это сделать?До сих пор я использовал get_dummies () и merge (), однако это занимает много времени и хуже, приводит к ошибке нехватки памяти.
так что мой ввод такой, как показано ниже:
trn_id | card_id | status
1 | c1 | Y
2 | c2 | Y
3 | c2 | N
4 | c3 | Y
5 | c3 | Y
я хотел бы, чтобы мой вывод был
trn_id | card_id | status | num_approved | num_of_denied
1 | c1 | Y | 1 | 0
2 | c2 | Y | 1 | 1
3 | c2 | N | 1 | 1
4 | c3 | Y | 2 | 0
5 | c3 | Y | 2 | 0
мой код, указанный ниже:
import pandas as panda
a = panda.DataFrame({'id':[1,2,3],'c_id':[22,22,33], 'status':['Y','Y','N']})
temp = a.status.str.get_dummies()
a[['N','Y']]= temp
tt = a.groupby(['c_id'])['Y'].count()
tt=tt.reset_index()
yes_count_added = a.merge(tt,how='right',on='c_id')
yes_count_added.rename(columns = {'Y_y':'num_of_approved'})