добавить два кадра данных с пандами - PullRequest
28 голосов
/ 15 октября 2011

Когда я пытаюсь объединить два кадра данных по строкам, выполните:

bigdata = data1.append(data2)

Я получаю следующую ошибку:

Exception: Index cannot contain duplicate values!

Индекс первого фрейма данных начинается с 0 до 38, а второго - с 0 до 48. Я не понял, что мне нужно изменить индекс одного из фреймов данных перед объединением, но я не знать, как.

Спасибо.

Это два кадра данных:

data1:

    meta  particle  ratio   area    type    
0   2     part10    1.348   0.8365  touching
1   2     part18    1.558   0.8244  single  
2   2     part2     1.893   0.894   single  
3   2     part37    0.6695  1.005   single  
....clip...
36  2     part23    1.051   0.8781  single  
37  2     part3     80.54   0.9714  nuclei  
38  2     part34    1.071   0.9337  single  

data2:

    meta  particle  ratio    area    type    
0   3     part10    0.4756   1.025   single  
1   3     part18    0.04387  1.232   dusts   
2   3     part2     1.132    0.8927  single  
...clip...
46  3     part46    13.71    1.001   nuclei  
47  3     part3     0.7439   0.9038  single  
48  3     part34    0.4349   0.9956  single 

первый столбец индекса

Ответы [ 2 ]

44 голосов
/ 15 октября 2011

Функция append имеет необязательный аргумент ignore_index, который вы должны использовать здесь для объединения записей, поскольку индекс не имеет значения для вашего приложения.

1 голос
/ 06 июня 2012

Вы можете сначала идентифицировать дублированную индексом (не значение) строку, используя метод groupby, а затем выполнить операцию суммы / среднего для всех строк с дублирующимся индексом.

data1 = data1.groupby(data1.index).sum()
data2 = data2.groupby(data2.index).sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...