计算行中的元素并在 pandas 中创建列计数器

问题描述 投票:0回答:1

我创建了以下 pandas 数据框:

import pandas as pd

ds = {'col1' : ['A','A','B','C','C','D'],
      'col2' : ['A','B','C','D','D','A']}

df = pd.DataFrame(data=ds)

数据框如下所示:

print(df)

  col1 col2
0    A    A
1    A    B
2    B    C
3    C    D
4    C    D
5    D    A

col1
col2
中的可能值为
A
B
C
D

我需要创建 4 个新列,名为:

  • countA
    :计算每行/记录中有多少个
    A
  • countB
    :计算每行/记录中有多少个
    B
  • countC
    :计算每行/记录中有多少个
    C
  • countD
    :计算每行/记录中有多少个
    D

因此,从上面的示例来看,生成的数据框将如下所示:

enter image description here

有人可以帮助我吗?

pandas dataframe count record calculated-columns
1个回答
1
投票

也许这对你有用

from numpy import unique

for k in unique(df.values):
    df['count'+k] = df.eq(k).sum(axis=1)

这给出了

  col1 col2  countA  countB  countC  countD
0    A    A       2       0       0       0
1    A    B       1       1       0       0
2    B    C       0       1       1       0
3    C    D       0       0       1       1
4    C    D       0       0       1       1
5    D    A       1       0       0       1
© www.soinside.com 2019 - 2024. All rights reserved.