Я не думаю, что смогу решить эту проблему с помощью groupby()
или agg()
, как в этих ( Question1 , Question2 ).
У меня есть pandas.DataFrame
, который имеет один столбец идентификатора (ID_Code
) и несколько столбцов информации (information 1
и information 2
). Мне нужно агрегировать некоторые идентификаторы. Это означает, что некоторые из них должны быть удалены, а их информация должна быть добавлена в определенные c другие строки.
Чтобы проиллюстрировать мою проблему, вот что я придумал:
import pandas as pd
inp = [{'ID_Code':1,'information 1':list(x * 3 for x in range(2, 5)),'information 2':list(x / 3 for x in range(2, 5))},
{'ID_Code':2,'information 1':list(x * 0.5 for x in range(2, 5)),'information 2':list(x / 2 for x in range(2, 5))},
{'ID_Code':3,'information 1':list(x * 0.2 for x in range(25, 29)),'information 2':list(x / 1 for x in range(2, 5))},
{'ID_Code':4,'information 1':list(x * 0.001 for x in range(102, 105)),'information 2':list(x / 12 for x in range(2, 5))},
{'ID_Code':5,'information 1':list(x * 12 for x in range(15, 17)),'information 2':list(x / 24 for x in range(2, 5))},
{'ID_Code':6,'information 1':list(x * 42 for x in range(2, 9)),'information 2':list(x / 48 for x in range(2, 5))},
{'ID_Code':7,'information 1':list(x * 23 for x in range(1, 2)),'information 2':list(x / 96 for x in range(2, 5))},
{'ID_Code':8,'information 1':list(x * 7.8 for x in range(8, 11)),'information 2':list(x / 124 for x in range(2, 5))}]
df = pd.DataFrame(inp)
print(df)
Out:
ID_Code information 1 information 2
0 1 [6, 9, 12] [0.6666666666666666, 1.0, 1.3333333333333333]
1 2 [1.0, 1.5, 2.0] [1.0, 1.5, 2.0]
2 3 [5.0, 5.2, 5.4, 5.6000000000000005] [2.0, 3.0, 4.0]
3 4 [0.10200000000000001, 0.10300000000000001, 0.10400000000000001] [0.16666666666666666, 0.25, 0.3333333333333333]
4 5 [180, 192] [0.08333333333333333, 0.125, 0.16666666666666666]
5 6 [84, 126, 168, 210, 252, 294, 336] [0.041666666666666664, 0.0625, 0.08333333333333333]
6 7 [23] [0.041666666666666664, 0.0625, 0.08333333333333333]
7 8 [62.4, 70.2, 78.0] [0.016129032258064516, 0.024193548387096774, 0.03225806451612903]
Что мне нужно сделать, если я хочу избавиться от ID_Code = 1
и сохранить его информацию в ID_Code = 3
, и избавьтесь от ID_Code = 5
и ID_Code = 7
и сохраните эту информацию в ID_Code = 2
, чтобы DataFrame выглядел так:
ID_Code information 1 information 2
0 2 [180, 192, 23, 1.0, 1.5, 2.0] [0.08333333333333333, 0.125, 0.16666666666666666, 0.041666666666666664, 0.0625, 0.08333333333333333, 1.0, 1.5, 2.0]
1 3 [6, 9, 12, 5.0, 5.2, 5.4, 5.6000000000000005] [2.0, 3.0, 4.0]
2 4 [0.10200000000000001, 0.10300000000000001, 0.10400000000000001] [0.6666666666666666, 1.0, 1.3333333333333333, 0.16666666666666666, 0.25, 0.3333333333333333]
3 6 [84, 126, 168, 210, 252, 294, 336] [0.041666666666666664, 0.0625, 0.08333333333333333]
4 8 [62.4, 70.2, 78.0] [0.016129032258064516, 0.024193548387096774, 0.03225806451612903]