我创建了以下熊猫数据框:
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
每行/记录中有多少个
因此,从上面的例子来看,生成的数据框将如下所示:
有人能帮帮我吗?
也许这对你有用
由此得出
这是一种使用的方法
pd.get_dummies()
这是一种使用的方法
value_counts()
输出:
保持简单,您可以使用
stack
+droplevel
来获取一个系列,然后crosstab
进行计数和join
输出,可选择在之后add_prefix
重命名列:输出:
您可以将整列与特定字母进行比较,将布尔值转换为 int,然后对每个字母的所得系列求和。例如:
将 pandas 导入为 pd
返回: