Почему при суммировании данных, сгруппированных по df.iloc[:, 0], также суммируются имена столбцов?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему при суммировании данных, сгруппированных по df.iloc[:, 0], также суммируются имена столбцов?

Сообщение Anonymous »

У меня есть DataFrame со столбцом вида и четырьмя произвольными столбцами данных. Я хочу сгруппировать их по видам и просуммировать четыре столбца данных для каждого из них. Я пытался сделать это двумя способами: один раз с помощью группировки по df.columns[0] и один раз с помощью группировки по df.iloc[:, 0].

Код: Выделить всё

data = {
'species': ['a', 'b', 'c', 'd', 'e', 'rt', 'gh', 'ed', 'e', 'd', 'd', 'q', 'ws', 'f', 'fg', 'a', 'a', 'a', 'a', 'a'],
's1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
's2': [9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
's3': [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21],
's4': [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
}
df = pd.DataFrame(data)

grouped_df1 = df.groupby(df.columns[0], as_index=False).sum()
grouped_df2 = df.groupby(df.iloc[:, 0], as_index=False).sum()
Оба метода правильно суммируют данные в четырех крайних правых столбцах. Но по какой-то причине второй метод также суммирует названия видов, объединяя их в одну длинную повторяющуюся строку.
Вот результат первого метода, о чем я и говорю. Я ищу:

Код: Выделить всё

print(grouped_df1)
species  s1  s2  s3  s4
0        a  91  54  97  60
1        b   2   9   3  10
2        c   3   9   4  10
3        d  25  27  28  30
4        e  14  18  16  20
5       ed   8   9   9  10
6        f  14   9  15  10
7       fg  15   9  16  10
8       gh   7   9   8  10
9        q  12   9  13  10
10      rt   6   9   7  10
11      ws  13   9  14  10
А вот результат метода df.iloc, который неправильно суммирует данные о видах:

Код: Выделить всё

print(grouped_df2)
species  s1  s2  s3  s4
0   aaaaaa  91  54  97  60
1        b   2   9   3  10
2        c   3   9   4  10
3      ddd  25  27  28  30
4       ee  14  18  16  20
5       ed   8   9   9  10
6        f  14   9  15  10
7       fg  15   9  16  10
8       gh   7   9   8  10
9        q  12   9  13  10
10      rt   6   9   7  10
11      ws  13   9  14  10
Почему второй метод суммирует названия видов, а также числовые данные?


Подробнее здесь: https://stackoverflow.com/questions/793 ... lumn-names
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»