增加行中条件值的计数

时间:2019-10-18 12:43:44

标签: python pandas dataframe

我有一个数据集,我正在使用Python 3.7和Pandas,并且正在努力统计行数。基于下面的简化版本,我有一个包含多列的数据框,我需要进行交互以获取计数。

A          B    
WalMart  "Yes"
Target
WalMart  "Yes"
BestBuy
Target   "Yes"

我要做的工作如下:

A          B     C
Gap              0
WalMart  "Yes"   1
Target           1
WalMart  "Yes"   2
BestBuy          2
Target   "Yes"   3

代码尝试:

initial_count = 0
if (df["B"]=="Yes"):
   df["C"]= initial_count+1

我有一个从零开始的计数,并且每当列B包含“是”时,都应添加该计数。关于如何执行此操作的任何想法?感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

比较值并按Series.cumsum使用累积和:

df['new'] = (df["B"]=="Yes").cumsum()
print (df)
         A    B  new
0  WalMart  Yes    1
1   Target  NaN    1
2  WalMart  Yes    2
3  BestBuy  NaN    2
4   Target  Yes    3

在第一个Yes之前有一些行:

df['new'] = (df["B"]=="Yes").cumsum()
print (df)
         A    B  new
0      gap  NaN    0
1  WalMart  Yes    1
2   Target  NaN    1
3  WalMart  Yes    2
4  BestBuy  NaN    2
5   Target  Yes    3