Я прохожу курс Академии хана по статистике, чтобы немного освежить свои студенческие годы и как способ научить меня работать с пандами и другим научным Python.
I 'У меня есть таблица, которая выглядит следующим образом от Академии Хана:
| Undergraduate | Graduate | Total
-------------+---------------+----------+------
Straight A's | 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
, которая выглядит так, как будто она должна делать то, что я хочу, но похоже, что для этого мне нужно было бы создать фрейм данных, состоящий из 1/0 длявсе эти значения, которые кажутся глупыми, потому что у меня уже есть агрегат.
Я нашел несколько подходов, которые, кажется, вручную строят новую итоговую строку, но кажется, что должен быть лучший способ, что-тонапример:
totals(df, rows=True, columns=True)
или что-то в этом роде.
Существует ли это в пандах, или мне просто нужно собраться со своим собственным подходом?