"Pandas 그룹 내에서 인접한 것끼리 그룹 지정하기"의 두 판 사이의 차이

10번째 줄: 10번째 줄:
tsv="""
tsv="""
user_id num
user_id num
1 1
1 2
2 3
2 3
2 4
2 4
22번째 줄: 20번째 줄:
1 8
1 8
1 9
1 9
1 10
2 12
2 13
1 13
1 14
1 15
1 16
"""
"""
df = pd.read_csv(io.StringIO(tsv),sep='\t')
df = pd.read_csv(io.StringIO(tsv),sep='\t')

2021년 10월 11일 (월) 03:28 판

1 개요

Pandas 그룹 내에서 인접한 것끼리 그룹 지정하기

2 예시 1

  • user_id별로 num이 연속된 값이면 같은 그룹, 그렇지 않으면 다른 그룹
import pandas as pd
import io

tsv="""
user_id	num
2	3
2	4
1	4
2	5
1	5
2	6
1	7
2	8
1	8
1	9
"""
df = pd.read_csv(io.StringIO(tsv),sep='\t')
df
df['group'] = df.groupby('user_id')['num'].diff() > 1
df['group'] = df.user_id*100 + df.groupby('user_id')['group'].cumsum() + 1
df

3 예시 2

4 예시 2

5 같이 보기

6 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}