如何計算每個類別的數量?

計算每個類別的數量在數據分析中是非常常見的,本文將從多個方面進行闡述。

一、按照類別列進行分類匯總

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
NOPVZ的頭像NOPVZ
上一篇 2025-04-29 12:49
下一篇 2025-04-29 12:49

相關推薦

發表回復

登錄後才能評論