Увеличить счетчик условных значений в строке - PullRequest
1 голос
/ 18 октября 2019

У меня есть набор данных, на котором я использую 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 Ответ

1 голос
/ 18 октября 2019

Сравните значение и используйте накопленную сумму по 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...