Як створити частотні таблиці в python
Таблиця частот – це таблиця, яка відображає частоти різних категорій. Цей тип таблиці особливо корисний для розуміння розподілу значень у наборі даних.
Цей підручник пояснює, як створити таблиці частот у Python.
Таблиця односторонніх частот для серії
Щоб знайти частоти окремих значень у серії pandas, ви можете скористатися функцією value_counts() :
import pandas as pd #defineSeries data = pd.Series([1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5]) #find frequencies of each value data.value_counts() 3 4 1 3 4 2 5 1 2 1
Ви можете додати аргумент sort=False, якщо не хочете, щоб значення даних сортувалися за частотою:
data.value_counts(sort= False )
1 3
2 1
3 4
4 2
5 1
Спосіб інтерпретації результату такий:
- Значення «1» з’являється 3 рази в серії.
- Значення «2» з’являється 1 раз в серії.
- Значення «3» з’являється 4 рази в серії.
І так далі.
Таблиця односторонніх частот для DataFrame
Щоб знайти частоти pandas DataFrame, ви можете скористатися функцією crosstab () , яка використовує такий синтаксис:
перехресна таблиця (індекси, стовпці)
золото:
- індекс: ім’я стовпця для групування
- стовпці: назва для стовпця частоти
Наприклад, скажімо, у нас є DataFrame, що містить інформацію про клас, вік і стать 10 різних учнів у класі. Ось як знайти частоту кожної букви:
#create data df = pd.DataFrame({'Grade': ['A','A','A','B','B', 'B', 'B', 'C', 'D', 'D '], 'Age': [18, 18, 18, 19, 19, 20, 18, 18, 19, 19], 'Gender': ['M','M', 'F', 'F', 'F', 'M', 'M', 'F', 'M', 'F']}) #view data df Grade Age Gender 0 to 18 m 1 to 18 m 2 A 18 F 3 B 19 F 4 B 19 F 5 B 20 M 6 B 18 M 7 C 18 F 8 D 19 M 9 D 19 F #find frequency of each letter grade pd.crosstab(index=df[' Grade '], columns=' count ') col_0 count Grade At 3 B4 C 1 D 2
Спосіб інтерпретації цього:
- 3 учні отримали «П’ятірку» в класі.
- 4 учні отримали в класі «В».
- 1 учень отримав трійку в класі.
- 2 учні отримали «Д» у класі.
Ми можемо використовувати аналогічний синтаксис, щоб знайти кількість частот для інших стовпців. Наприклад, ось як визначити частоту за віком:
pd.crosstab(index=df[' Age '], columns=' count ') col_0 count Age 18 5 19 4 20 1
Спосіб інтерпретації цього:
- 5 учнів 18 років.
- 4 студенти 19 років.
- 1 студент 20 років.
Ви також можете легко відобразити частоти як пропорції набору даних, поділивши на суму:
#define crosstab tab = pd.crosstab(index=df['Age'], columns='count') #find proportions tab/tab.sum() col_0 count Age 18 0.5 19 0.4 20 0.1
Спосіб інтерпретації цього:
- 50% студентів мають 18 років.
- 40% студентів мають 19 років.
- 10% студентів мають 20 років.
Двонаправлені частотні таблиці для DataFrame
Ви також можете створити таблицю двосторонніх частот, щоб відобразити частоти двох різних змінних у наборі даних. Наприклад, ось як створити таблицю двосторонньої частоти для змінних Age і Grade:
pd.crosstab(index=df[' Age '], columns=df[' Grade ']) Grade A B C D Age 18 3 1 1 0 19 0 2 0 2 20 0 1 0 0
Спосіб інтерпретації цього:
- У класі 3 учні віком 18 років, які отримали «А».
- У класі є 1 учень 18 років, який отримав «В».
- У класі є 1 учень 18 років, який отримав “3”.
- У класі 0 учнів 18 років, які отримали «Д».
І так далі.
Ви можете знайти повну документацію для функції crosstab() тут .