#python #data-science
#python #наука о данных
Вопрос:
Я действительно не знаю, как это сформулировать, поэтому я надеюсь, что это будет понятно. У меня есть большой csv-файл, который содержит тысячи строк и несколько столбцов, который в основном выглядит так :
Класс | DBE | Количество | H / C | N / C | O / C |
---|---|---|---|---|---|
Класс 1 | 1 | 10000 | 0.9 | 0.08 | 0.8 |
Класс 1 | 2 | 50000 | 0.8 | 0.08 | 0.6 |
Класс 2 | 1 | 20000 | 0.9 | 0.06 | 0.5 |
Класс 2 | 1 | 30000 | 0.8 | 0.08 | 0.8 |
… | … | … | … | … | … |
…
Я хочу получить общее количество элементов для каждого одного и того же класса (так что суммируйте все количества элементов класса 1, класса 2 и т.д.) И каждого одного и того же DBE. Мне также нужно общее количество для набора (H / C, N / C) и для набора (H / C, O / C). Я начал это вручную, но это очень долго, поэтому я надеялся использовать python, так как я немного его знаю и, похоже, у него есть библиотеки для вычислений. Каков наилучший способ добиться этого? Эта функция гистограммы в numpy кажется интересной, но требует знания «ячеек». Кодирование чего-либо для прокрутки таблицы кажется излишним.
Заранее спасибо
Комментарии:
1. Вы проверили
pandas
библиотеку и ееgroupby
функцию?2.
totals = df.groupby(["Class"]).sum()
Ответ №1:
Прежде всего, мы будем признательны, если вы поделитесь своим (нефункциональным) кодом, а не только задачей, которую вы хотите выполнить, см. Рекомендации по этому вопросу.
На ваш вопрос: вы могли бы попробовать использовать функцию pandas groupby после чтения файла csv в фрейм данных pandas.
например:
import pandas as pd
df = pd.read_csv("your_csv_file")
df.groupby(["Class"].sum())
Затем вы суммируете все столбцы, кроме Class, где вы группируете после и должны иметь свое решение.
Комментарии:
1. Я не знал, с чего начать, поэтому у меня не было кода, который можно было бы предложить. Я спрашивал рекомендации. функция groupby — это то, что я искал, я не знал об этом, и она довольно мощная и простая в использовании.