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

标签 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

这表明,例如,在原始 DataFrame 中,label1 在索引 0 处出现一次,在索引 1 处出现两次,在索引 2 处出现一次。

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

最佳答案

用途:

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

关于python - 根据标签位置计算 Pandas DataFrame 的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54365492/

相关文章:

python - 从 python panda 数据框中的大量文本中逐行删除 URL

python - fillna() 和 map(dict) 不仅填充 NaN,还填充所有值

python - 如何使用 pandas 根据行和列名称创建数组

python - 创建具有条件的多列

python - 抓取多个页面时经常出现 HTTP 错误 413

python - 更快地实现像素映射

python - 如何在整个程序的生命周期中唯一标识Python中的类

python - Pandas 中最简单的分组/求和

python,pandas 进行分组 value_count()

Python:for循环在print()中