Як створити частотні таблиці в 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() тут .

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *