Я пытаюсь перевести некоторый код на Python из Stata.Следующий код используется для отбрасывания повторяющихся наблюдений для одной и той же переменной id
в той же date
:
quietly by id date: gen dup = cond(_N==1,0,_n)
drop if id >= 1
Приведенный ниже код используется для создания образца набора данных Python.То, что делает приведенный выше код в Stata, - это удаление дублирующих наблюдений.Например, date
2014-05-01, id
1 имеет одинаковые данные в два раза, а также date
2014-05-02, id
2 и т. Д. Однако мне нужны только данныепоявиться один раз.Может кто-нибудь знает эквивалентный код в Python?
data = {'date': ['2014-05-01', '2014-05-01','2014-05-01','2014-05-01','2014-05-01',
'2014-05-02','2014-05-02','2014-05-02','2014-05-02','2014-05-03',
'2014-05-03','2014-05-03','2014-05-03'],'id':[1, 1, 2, 3, 4, 1, 2,
2, 3, 1, 1, 2, 3],'obs': [10, 10, 5, 7, 3, 2, 4, 4, 3, 8, 8, 6, 11]}
df1 = pd.DataFrame(data, columns = ['date', 'id','obs'])
df1.index = df1['date']
del df1['date']
df1
Исходные данные
Out[1]:
id obs
date
2014-05-01 1 10
2014-05-01 1 10
2014-05-01 2 5
2014-05-01 3 7
2014-05-01 4 3
2014-05-02 1 2
2014-05-02 2 4
2014-05-02 2 4
2014-05-02 3 3
2014-05-03 1 8
2014-05-03 1 8
2014-05-03 2 6
2014-05-03 3 11
Требуемые данные
Out[2]:
id obs
date
2014-05-01 1 10
2014-05-01 2 5
2014-05-01 3 7
2014-05-01 4 3
2014-05-02 1 2
2014-05-02 2 4
2014-05-02 3 3
2014-05-03 1 8
2014-05-03 2 6
2014-05-03 3 11