我试图计算每一列Pandas DataFrame
中标签的索引。基本上,我有以下DataFrame
:
d = {'col1': ['label1', 'label2', 'label3'],
'col2': ['label2', 'label3', 'label1'],
'col3': ['label2', 'label1', 'label3'],
'col4': ['label3', 'label1', 'label2']}
df = pd.DataFrame(data = d)
其格式为:
col1 col2 col3 col4
0 label1 label2 label2 label3
1 label2 label3 label1 label1
2 label3 label1 label3 label2
想法是要计算数组(或数据框)中所有列的每个标签的索引,如下所示:
label1 label2 label3
0 1 2 1
1 2 1 1
2 1 1 2
例如,这label1
在原始DataFrame
的索引0处出现一次,在索引1处出现两次,在索引2处出现一次。
我正在循环内执行此操作,因此首选高效的方法。有什么想法吗?
答案 0 :(得分:3)
使用:
df = df.apply(pd.value_counts, axis=1)
print (df)
label1 label2 label3
0 1 2 1
1 2 1 1
2 1 1 2