У меня есть следующая таблица:
Образцы данных:
e_id e_ctry e_grp_id e_loc_nbr e_loc_id e_sal
=============================================
111 03 65 889 03 10000
131 01 67 009 09 8000
152 02 12 545 09 17000
155 04 55 778 09 33000
115 04 55 778 09 33000
156 04 55 778 09 33000
177 03 65 889 03 14000
122 03 65 889 03 14000
141 03 65 889 03 17000
171 03 65 889 03 14000
Пробуйте следующий код:
d_tbl = self.emp_d[['e_id','e_ctry','e_grp_id','e_loc_nbr','e_loc_id','e_sal']].drop_duplicates()
def e_c_rslt(self):
e_c_data = self.d_tbl[(self.d_tbl['e_loc_id']==1) ][['e_id','e_ctry','e_grp_id','e_loc_nbr','e_sal']]
e_c_grpd = e_c_data.groupby([e_id','e_grp_id','e_ctry']).e_sal.nunique().reset_index()
rslt_ac9b=e_c_grpd[e_c_grpd.e_sal>15000]
, но продолжайте получать следующее сообщение об ошибке:
e_c_grpd = e_c_data.groupby([e_id','e_grp_id','e_ctry']).e_sal.nunique().reset_index()
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 2866, in nunique
res = out if ids[0] != -1 else out[1:]
IndexError: index 0 is out of bounds for axis 0 with size 0
Не понимаю, что я делаю не так?
Ожидаемое O / P:
e_id e_ctry e_grp_id e_sal
===========================
111 03 65 10000
177 03 65 14000
122 03 65 14000
141 03 65 17000
171 03 65 14000
Требуется собрать ['e_id', 'e_ctry', 'e_grp_id']
, если e_sal>15000
ивезде, где есть разные e_sal
для тех же 'e_ctry', 'e_grp_id'
.
Update_1:
После печати print(e_c_data)
получение:
Empty DataFrame
Columns: [e_id,e_ctry,e_grp_id,e_loc_nbr,e_sal]
Index: []