У меня есть DataFrame так:панды - сумма объектов в колонке DataFrame и присоединиться DataFrame
d = {'buy': Series([1., 0., 1., 0., 1., 1., 0., 0., 1., 1., 1., 0., 1., 0.]),
'id': Series([1., 2., 4., 2., 3., 4., 1., 1., 2., 1., 3., 3., 2., 3.]), 'datetime': Series(['01.02.2015',
'01.02.2015', '01.03.2015', '03.01.2015', '06.02.2015', '01.09.2015', '18.03.2015', '02.02.2015', '03.02.2015',
'06.04.2015', '01.04.2015', '03.04.2015', '02.04.2015', '20.03.2015'])}
df = DataFrame(d)
print(df)
buy datetime id
0 1 01.02.2015 1
1 0 01.02.2015 2
2 1 01.03.2015 4
3 0 03.01.2015 2
4 0 06.02.2015 3
5 1 01.09.2015 4
6 0 18.03.2015 1
7 0 02.02.2015 1
8 1 03.02.2015 2
9 1 06.04.2015 1
10 1 01.04.2015 3
11 0 03.04.2015 3
12 1 02.04.2015 2
13 0 20.03.2015 3
Во-первых, I группа его от «ид» и получать только последнюю «DateTime» от каждого «ид» :
df1 = df.sort(columns=['datetime']).drop_duplicates(subset='id', take_last=True)
print(df1)
buy datetime id
5 1 01.09.2015 4
8 1 03.02.2015 2
6 0 18.03.2015 1
13 0 20.03.2015 3
и затем я должен суммировать каждые идентификаторы «купить» и присоединиться к новому колонку (я назвал его buy_count ') с моей DataFrame. У меня, как это л:
buys = df.groupby(by='id')['buy'].sum()
print(buys)
id
1 2
2 2
3 1
4 2
Но я не могу вставить «buy_count» в DataFrame:
df1['buys_count'] = buys
print(df1)
buy datetime id buys_count
5 1 01.09.2015 4 NaN
8 1 03.02.2015 2 NaN
6 0 18.03.2015 1 NaN
13 0 20.03.2015 3 NaN
Как я предполагаю, что есть некоторые проблемы с индексами. Пытались изменить индексы, попробуйте использовать циклы, но все они не увенчались успехом. Как я могу это получить?
это мой ошибка в описании. Ваш код абсолютно прав, спасибо большое! –