แนวคิด
กำหนด matrix และลิสต์ค่าเป้าหมาย ให้คำนวณในแต่ละแถวว่า ค่าเป้าหมายแต่ละตัวปรากฏกี่ครั้ง แล้วรวมกันเป็นผลรวมต่อแถว
ตัวอย่างโค้ด
from collections import Counter
my_list = [
[11, 2, 32, 4, 31],
[52, 52, 3, 71, 71, 3],
[1, 3],
[19, 19, 40, 40, 40]
]
print("Matrix:", my_list)
my_element_list = [19, 2, 71]
print("ค่าเป้าหมาย:", my_element_list)
# Counter สำหรับแต่ละแถว
row_counters = [Counter(row) for row in my_list]
# นับความถี่ของค่าเป้าหมายในแต่ละแถว แล้วรวม
my_result = [
sum(freq[val] for val in my_element_list if val in freq)
for freq in row_counters
]
print("ผลรวมความถี่ต่อแถว:", my_result)
ผลลัพธ์
Matrix: [[11, 2, 32, 4, 31], [52, 52, 3, 71, 71, 3], [1, 3], [19, 19, 40, 40, 40]]
ค่าเป้าหมาย: [19, 2, 71]
ผลรวมความถี่ต่อแถว: [1, 2, 0, 2]
คำอธิบายแถวต่อแถว
- แถว 0: มี 2 (1 ครั้ง) -> sum = 1
- แถว 1: มี 71 (2 ครั้ง) -> sum = 2
- แถว 2: ไม่มี 19, 2, 71 -> sum = 0
- แถว 3: มี 19 (2 ครั้ง) -> sum = 2
ใช้ Pandas (ถ้าข้อมูลใหญ่)
import pandas as pd
df = pd.DataFrame(my_list)
target = [19, 2, 71]
result = df.apply(lambda row: row.isin(target).sum(), axis=1).tolist()