Pandas: counter increasing each time conditions are met
I have a dataframe with some conditions and a Counter that Counts when condition A is met.
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 0
01,01,2018 08:07 B 0
01,01,2018 08:10 B 0
01,01,2018 08:13 B 0
01,01,2018 08:22 A 1
01,01,2018 08:24 A 2
01,01,2018 08:25 B 0
01,01,2018 08:27 B 0
01,01,2018 08:29 B 0
01,01,2018 08:30 A 1
I would like that the Count doesn't reset each time condition changes.
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 3
01,01,2018 08:07 B 3
01,01,2018 08:10 B 3
01,01,2018 08:13 B 3
01,01,2018 08:22 A 4
01,01,2018 08:24 A 5
01,01,2018 08:25 B 5
01,01,2018 08:27 B 5
01,01,2018 08:29 B 5
01,01,2018 08:30 A 6
At the Moment the code for the Count Looks like:
df['count']= df.groupby((df['condition'] = 'A').cumsum()).cumcount()
Thanks!
python pandas
add a comment |
I have a dataframe with some conditions and a Counter that Counts when condition A is met.
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 0
01,01,2018 08:07 B 0
01,01,2018 08:10 B 0
01,01,2018 08:13 B 0
01,01,2018 08:22 A 1
01,01,2018 08:24 A 2
01,01,2018 08:25 B 0
01,01,2018 08:27 B 0
01,01,2018 08:29 B 0
01,01,2018 08:30 A 1
I would like that the Count doesn't reset each time condition changes.
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 3
01,01,2018 08:07 B 3
01,01,2018 08:10 B 3
01,01,2018 08:13 B 3
01,01,2018 08:22 A 4
01,01,2018 08:24 A 5
01,01,2018 08:25 B 5
01,01,2018 08:27 B 5
01,01,2018 08:29 B 5
01,01,2018 08:30 A 6
At the Moment the code for the Count Looks like:
df['count']= df.groupby((df['condition'] = 'A').cumsum()).cumcount()
Thanks!
python pandas
add a comment |
I have a dataframe with some conditions and a Counter that Counts when condition A is met.
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 0
01,01,2018 08:07 B 0
01,01,2018 08:10 B 0
01,01,2018 08:13 B 0
01,01,2018 08:22 A 1
01,01,2018 08:24 A 2
01,01,2018 08:25 B 0
01,01,2018 08:27 B 0
01,01,2018 08:29 B 0
01,01,2018 08:30 A 1
I would like that the Count doesn't reset each time condition changes.
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 3
01,01,2018 08:07 B 3
01,01,2018 08:10 B 3
01,01,2018 08:13 B 3
01,01,2018 08:22 A 4
01,01,2018 08:24 A 5
01,01,2018 08:25 B 5
01,01,2018 08:27 B 5
01,01,2018 08:29 B 5
01,01,2018 08:30 A 6
At the Moment the code for the Count Looks like:
df['count']= df.groupby((df['condition'] = 'A').cumsum()).cumcount()
Thanks!
python pandas
I have a dataframe with some conditions and a Counter that Counts when condition A is met.
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 0
01,01,2018 08:07 B 0
01,01,2018 08:10 B 0
01,01,2018 08:13 B 0
01,01,2018 08:22 A 1
01,01,2018 08:24 A 2
01,01,2018 08:25 B 0
01,01,2018 08:27 B 0
01,01,2018 08:29 B 0
01,01,2018 08:30 A 1
I would like that the Count doesn't reset each time condition changes.
date condition count
01,01,2018 08:00 A 1
01,01,2018 08:01 A 2
01,01,2018 08:03 A 3
01,01,2018 08:04 B 3
01,01,2018 08:07 B 3
01,01,2018 08:10 B 3
01,01,2018 08:13 B 3
01,01,2018 08:22 A 4
01,01,2018 08:24 A 5
01,01,2018 08:25 B 5
01,01,2018 08:27 B 5
01,01,2018 08:29 B 5
01,01,2018 08:30 A 6
At the Moment the code for the Count Looks like:
df['count']= df.groupby((df['condition'] = 'A').cumsum()).cumcount()
Thanks!
python pandas
python pandas
asked Nov 19 '18 at 17:02
Luca91Luca91
1808
1808
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Why not
df['count']=df['condition'].eq('A').cumsum()
what if I have 2 conditions but I want to restart the Count each time are both met?? at the Moment I am tryingdf['count']= df.groupby(((df.condition1<50)&(df.condition2 < 10)).cumsum()).cumcount()+1
but it doesn't work, it simply start counting from the beginning to the end ignoring the conditions...can you help me with this please?
– Luca91
Nov 20 '18 at 8:46
add a comment |
I think groupby.cumsum is what you're looking for
df['count']= df.groupby((df['Date']['condition']).cumsum())
and then later subset the df based on required condition.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53379461%2fpandas-counter-increasing-each-time-conditions-are-met%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Why not
df['count']=df['condition'].eq('A').cumsum()
what if I have 2 conditions but I want to restart the Count each time are both met?? at the Moment I am tryingdf['count']= df.groupby(((df.condition1<50)&(df.condition2 < 10)).cumsum()).cumcount()+1
but it doesn't work, it simply start counting from the beginning to the end ignoring the conditions...can you help me with this please?
– Luca91
Nov 20 '18 at 8:46
add a comment |
Why not
df['count']=df['condition'].eq('A').cumsum()
what if I have 2 conditions but I want to restart the Count each time are both met?? at the Moment I am tryingdf['count']= df.groupby(((df.condition1<50)&(df.condition2 < 10)).cumsum()).cumcount()+1
but it doesn't work, it simply start counting from the beginning to the end ignoring the conditions...can you help me with this please?
– Luca91
Nov 20 '18 at 8:46
add a comment |
Why not
df['count']=df['condition'].eq('A').cumsum()
Why not
df['count']=df['condition'].eq('A').cumsum()
answered Nov 19 '18 at 17:09
W-BW-B
107k83165
107k83165
what if I have 2 conditions but I want to restart the Count each time are both met?? at the Moment I am tryingdf['count']= df.groupby(((df.condition1<50)&(df.condition2 < 10)).cumsum()).cumcount()+1
but it doesn't work, it simply start counting from the beginning to the end ignoring the conditions...can you help me with this please?
– Luca91
Nov 20 '18 at 8:46
add a comment |
what if I have 2 conditions but I want to restart the Count each time are both met?? at the Moment I am tryingdf['count']= df.groupby(((df.condition1<50)&(df.condition2 < 10)).cumsum()).cumcount()+1
but it doesn't work, it simply start counting from the beginning to the end ignoring the conditions...can you help me with this please?
– Luca91
Nov 20 '18 at 8:46
what if I have 2 conditions but I want to restart the Count each time are both met?? at the Moment I am trying
df['count']= df.groupby(((df.condition1<50)&(df.condition2 < 10)).cumsum()).cumcount()+1
but it doesn't work, it simply start counting from the beginning to the end ignoring the conditions...can you help me with this please?– Luca91
Nov 20 '18 at 8:46
what if I have 2 conditions but I want to restart the Count each time are both met?? at the Moment I am trying
df['count']= df.groupby(((df.condition1<50)&(df.condition2 < 10)).cumsum()).cumcount()+1
but it doesn't work, it simply start counting from the beginning to the end ignoring the conditions...can you help me with this please?– Luca91
Nov 20 '18 at 8:46
add a comment |
I think groupby.cumsum is what you're looking for
df['count']= df.groupby((df['Date']['condition']).cumsum())
and then later subset the df based on required condition.
add a comment |
I think groupby.cumsum is what you're looking for
df['count']= df.groupby((df['Date']['condition']).cumsum())
and then later subset the df based on required condition.
add a comment |
I think groupby.cumsum is what you're looking for
df['count']= df.groupby((df['Date']['condition']).cumsum())
and then later subset the df based on required condition.
I think groupby.cumsum is what you're looking for
df['count']= df.groupby((df['Date']['condition']).cumsum())
and then later subset the df based on required condition.
answered Nov 19 '18 at 17:21
Ken DekalbKen Dekalb
319112
319112
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53379461%2fpandas-counter-increasing-each-time-conditions-are-met%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown