0
計數代替分類值讓我們假設我有一個數據幀:大熊貓:多類標籤
df = pd.DataFrame({'label': [0, 1, 2, 0, 1, 2], 'cat_col': [1, 1, 2, 2, 3, 3]})
cat_col label
0 1 0
1 1 1
2 2 2
3 2 0
4 3 1
5 3 2
我想這個數據幀轉換爲以下幾點:
cat_col, label, count_when_label_is_0, count_when_label_is_1, count_when_label_is_2
1 0 1, 1, 0
1 1 1, 1, 0
...
所以基本上我爲每個標籤值(多項標籤)添加一列,併爲row.cat_col在該行中的每一行放置該標籤值的計數。我現在有這一點,但它是非常緩慢:
size = df[['cat_col', 'label']].groupby(['cat_col', 'label']).size()
def get_size(cat_val, label_val):
if label_val in size[cat_val]: return size[cat_val][target_val]
return 0
for label_val in range(9): # 9 classes in multinominal label
df['new_col_' + str(label_val)] = df['cat_col'].apply(
lambda cat_val: get_size(cat_val, label_val))
雖然這是對有機磷農藥不同,這樣的變換分析(上cat_col)似乎很奇怪。 .. –