計算每個類別的數量在數據分析中是非常常見的,本文將從多個方面進行闡述。
一、按照類別列進行分類匯總
import pandas as pd # 創建示例數據 data = {'category': ['A', 'A', 'B', 'C', 'C', 'C'], 'value': [1, 2, 3, 4, 5, 6]} df = pd.DataFrame(data) # 按照 category 列進行分類匯總 result = df.groupby('category').size().reset_index(name='counts') print(result)
首先,我們可以通過 pandas 中的 groupby()
函數將數據按照類別列進行分組,再利用 size()
函數統計每個組的數據量,並通過 reset_index()
函數將結果轉化成 DataFrame 格式。上述代碼運行結果如下:
category counts 0 A 2 1 B 1 2 C 3
二、使用 Counter 類進行計數
from collections import Counter # 創建示例數據 data = ['A', 'A', 'B', 'C', 'C', 'C'] # 使用 Counter 類實現計數 result = Counter(data) print(result)
Counter 類可以方便地實現對一個列表中元素的計數,返回一個字典類型的計數結果。上述代碼運行結果如下:
Counter({'C': 3, 'A': 2, 'B': 1})
三、使用 dict 和循環進行計數
# 創建示例數據 data = ['A', 'A', 'B', 'C', 'C', 'C'] # 使用 dict 和循環實現計數 result = {} for d in data: if d not in result: result[d] = 1 else: result[d] += 1 print(result)
我們也可以通過創建一個空字典,並使用循環對每個元素進行判斷、計數來實現統計。上述代碼運行結果如下:
{'A': 2, 'B': 1, 'C': 3}
四、使用 SQL 語句進行分組計數
import sqlite3 # 創建示例數據 data = [('A', 1), ('A', 2), ('B', 3), ('C', 4), ('C', 5), ('C', 6)] # 將數據插入 SQLite 數據庫中 conn = sqlite3.connect(':memory:') c = conn.cursor() c.execute('''CREATE TABLE data (category text, value int)''') c.executemany('INSERT INTO data VALUES (?,?)', data) # 使用 SQL 語句實現按照 category 列分組統計 c.execute('''SELECT category, COUNT(category) FROM data GROUP BY category''') result = c.fetchall() print(result)
如果數據存儲在 SQLite 數據庫中,我們可以通過 SQL 語句中的 GROUP BY 子句實現按照類別列分組、計數。上述代碼運行結果如下:
[('A', 2), ('B', 1), ('C', 3)]
五、使用 map 和 lambda 函數實現計數
# 創建示例數據 data = ['A', 'A', 'B', 'C', 'C', 'C'] # 使用 map 和 lambda 函數實現計數 result = dict(map(lambda x: (x, data.count(x)), data)) print(result)
最後,我們也可以使用 map 和 lambda 函數來實現計數。上述代碼運行結果如下:
{'A': 2, 'B': 1, 'C': 3}
原創文章,作者:NOPVZ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/375246.html