我有以下df:
ID Col1 Col2 Col3
1 A NB C
2 A NB C
3 NS B NC
4 NS NB NC
5 NS B NC
6 NS B C
我正在尝试根据它们的值来获取每一列的计数。
Col1中有多少个“ A”
第2列中有多少个“ B”
Col3中有多少个“ C”
在原始df中,我有很多列和条件。
预期输出:
Col1 Col2 Col3
TotalCount"A" TotalCount"B" TotalCount"C"
因此,我试图获取列的列表并对其进行迭代,但是没有得到预期的结果。 我正在使用jupyternotebook中的熊猫
答案 0 :(得分:1)
您可以在此处使用df.eq
并传递要比较的值列表。
values = ['A', 'B', 'C']
out = df.loc[:, 'Col1':].eq(values).sum()
Col1 2
Col2 3
Col3 3
dtype: int64
答案 1 :(得分:1)
扩展@ Ch3ster的答案以匹配预期的输出:
WITH cte
AS
(
SELECT
*
, waitingTime AS TotalWaitingTime
FROM
waitingTime
UNION ALL
SELECT
w.*
, TotalWaitingTime + w.waitingTime
FROM
waitingTime w
JOIN cte
ON w.ParentObject = cte.Object
)
SELECT
object
, ParentObject
, waitingTime
, MAX(TotalWaitingTime) TotalWaitingTime
FROM
cte
GROUP BY
object
, ParentObject
, waitingTime
GO