根据标签位置计算Pandas DataFrame的索引

时间:2019-01-25 12:37:31

标签: python pandas

我试图计算每一列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处出现一次。

我正在循环内执行此操作,因此首选高效的方法。有什么想法吗?

1 个答案:

答案 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