У меня есть dataframe с датой, id - мне нужно вытащить каждую комбинацию даты и идентификатора и создать новый dataframe.Python для цикла над двумя списками для всех пар
date id
2016-05-13 abc
2016-05-13 pqr
2016-05-14 abc
2016-05-14 pqr
ids = list(sorted(set(df['id'])))
Out: ['abc','pqr']
dates = list(sorted(set(df[df.id == ids[i]]['date'])))
Out: ['2016-05-13','2016-05-14']
for i in range(0,len(ids)):
df2 = df[(df.date == dates[i]) & (df.id == id[i])]
приведенный выше код в результате чего выходной сигнал (df2
) для относительных значений индекса только (первая дата, первый идентификатор & вторую дату, второй Id), но мне нужно выход для всех пар. Пожалуйста, дайте мне знать, что менять в цикле?
itertools является прекрасным ответом, но этот фрагмент даже не работает. Вы просто переназначаете фрагмент 'df' в ту же переменную' df2' снова и снова. – piRSquared
@piRSquared из того, что я понял, OP хотел создать такой срез для каждой пары id/date-slice, который предположительно подвергается дальнейшей обработке ... – ewcz