Я проходил курс Академии Хан по статистике как немного обновленный из моих дней в колледже и как способ заставить меня ускорить участие в пандах и других научных Python.
У меня есть таблица, которая выглядит так из Академии Хана:
| Undergraduate | Graduate | Total
-------------+---------------+----------+------
Straight A | 240 | 60 | 300
-------------+---------------+----------+------
Not | 3,760 | 440 | 4,200
-------------+---------------+----------+------
Total | 4,000 | 500 | 4,500
Я хотел бы воссоздать эту таблицу с помощью панд. Конечно, я мог бы создать DataFrame, используя что-то вроде
"Graduate": {...},
"Undergraduate": {...},
"Total": {...},
Но это похоже на наивный подход, который быстро справится и просто не будет расширяться.
У меня есть не итоговая часть таблицы:
df = pd.DataFrame(
{
"Undergraduate": {"Straight A's": 240, "Not": 3_760},
"Graduate": {"Straight A's": 60, "Not": 440},
}
)
df
Я искал и нашел пару многообещающих вещей, таких как:
df['Total'] = df.sum(axis=1)
Но я не нашел ничего ужасно изящного.
Я нашел функцию crosstab
которая выглядит так, как будто она должна делать то, что я хочу, но, похоже, для этого мне пришлось бы создать dataframe, состоящий из 1/0 для всех этих значений, что кажется глупым, ve уже получил совокупность.
Я нашел несколько подходов, которые, как представляется, вручную создают новую итоговую строку, но кажется, что должен быть лучший способ, например:
totals(df, rows=True, columns=True)
или что-то.
Оказывается ли это в пандах, или мне нужно просто подбирать собственный подход?