Điều này phải rõ ràng, nhưng tôi không thể tìm thấy một giải pháp dễ dàng.Pandas dataframe để đếm ma trận
Tôi có gấu trúc DataFrame như thế này:
actual | predicted
------ + ---------
Apple | Apple
Apple | Apple
Apple | Banana
Banana | Orange
Orange | Apple
Tôi muốn điều này:
| Apple | Banana | Orange
------ + ------- + ------- + -------
Apple | 2 | 1 | 0
Banana | 0 | 0 | 1
Orange | 1 | 0 | 0
Được chấp nhận cho 'crosstab'. Unstacking size() có vẻ giống như một hack với tôi. –
Cảm ơn bạn đã chấp nhận! Giải pháp đầu tiên là nhanh hơn, nhưng tôi đồng ý nó là một chút hack. – jezrael
'Trong [142]:% thời gian pd.crosstab (df.actual, df.predicted) 100 vòng, tốt nhất là 3: 5,04 ms trên mỗi vòng lặp và 'Trong [143]:% timeit df.groupby ([ 'thực tế', 'được dự đoán']). size(). unstack (fill_value = 0) 1000 vòng, tốt nhất là 3: 1,28 ms mỗi vòng lặp ' – jezrael