計算每個類別的數量在數據分析中是非常常見的,本文將從多個方面進行闡述。
一、按照類別列進行分類匯總
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-tw/n/375246.html
微信掃一掃
支付寶掃一掃