计算一个特定值在另一个列中的每个唯一标识符中出现的次数



我有一个两列的数据框。

Col1是唯一的公司ID。这些ID出现多次,代表公司每次被引用。

Col2是对公司执行的工作的描述。"已尝试"、"已发票"、"已取消"等

我需要计算每个公司ID (Col1)的次数"attempt"出现在Col2中。这将是col3

交货。我有的:

Company ID   Work Described
COM123A      Attempted
COM123A      Invoiced
COM789B      Invoiced
COM123A      Attempted

交货。我想要的:

Company ID   Work Described       # of 'Attempted'
COM123A      Attempted                     2              
COM123A      Invoiced                      2
COM789B      Invoiced                      0
COM123A      Attempted                     2

这是我到目前为止所尝试的。我首先创建一个新的数据框架。

jobAttemptedDF = pd.DataFrame()
jobAttemptedDF = df['Col2'].eq('Attempted').groupby(df['Col1']).count().astype(int).reset_index(name='Col3')

但是结果是否定的。

如何计算Col1中每个唯一标识符在Col2中发生的"尝试"次数?

非常接近,这里我们想要'sum'而不是'count'

count表示组中非NaN值的个数。我们想要计算由df['Work Described'].eq('Attempted')的比较操作创建的True值的个数。

由于True1,False0的数学运算,sum可以很好地计算True值的数量:

df['# of Attempted'] = (
df['Work Described'].eq('Attempted')
.groupby(df['Company ID']).transform('sum')
)

df:

0

相关内容

  • 没有找到相关文章