我有一个数据集,我正在使用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包含“是”时,都应添加该计数。关于如何执行此操作的任何想法?感谢您的帮助!
答案 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