판다의 데이터 프레임별 그룹화 및 열 유지 방법
다음과 같은 일부 책의 사용을 기록하는 데이터 프레임을 고려하면 다음과 같습니다.
Name   Type   ID
Book1  ebook  1
Book2  paper  2
Book3  paper  3
Book1  ebook  1
Book2  paper  2
모든 책의 수를 세고 다른 칼럼들을 보관하고 이것을 가져와야 합니다.
Name   Type   ID    Count
Book1  ebook  1     2
Book2  paper  2     2
Book3  paper  3     1
이것이 어떻게 행해지는가?
감사합니다!
원하는 것은 다음과 같습니다.
In [20]:
df.groupby(['Name','Type','ID']).count().reset_index()
Out[20]:
    Name   Type  ID  Count
0  Book1  ebook   1      2
1  Book2  paper   2      2
2  Book3  paper   3      1
사용자의 경우 '이름', '유형' 및 'ID 콜은 값이 일치하기 때문에, 우리는 이것들을 확인하고, 전화하고, 그 다음에 할 수 있습니다.
다른 접근 방식은 다음을 사용하여 '카운트' 열을 추가하는 것입니다.transform그 다음에 전화해요.drop_duplicates:
In [25]:
df['Count'] = df.groupby(['Name'])['ID'].transform('count')
df.drop_duplicates()
Out[25]:
    Name   Type  ID  Count
0  Book1  ebook   1      2
1  Book2  paper   2      2
2  Book3  paper   3      1
생각합니다as_index=False속임수를 써야 합니다.
df.groupby(['Name','Type','ID'], as_index=False).count()
df에 열이 많으면 사용하는 것이 좋습니다.df.groupby(['foo']).agg(...), 여기를 봐요..agg()함수를 사용하면 작업을 적용하지 않을 열에 대해 수행할 작업을 선택할 수 있습니다.만약 당신이 그것들을 보관하고 싶다면, 사용하세요..agg({'col1': 'first', 'col2': 'first', ...}. 대신에'first', 신청도 가능합니다.'sum','mean'그 밖의 사람들.
사용가능value_counts()또한:
df.value_counts().reset_index(name= 'Count')
출력:
    Name   Type  ID  Count
0  Book1  ebook   1      2
1  Book2  paper   2      2
2  Book3  paper   3      1
가장 간단한 방법
df.groupby(['col1', 'col1'], as_index=False).count().사용하다as_index=False열 이름을 유지합니다.기본값은True.
사용할 수도 있습니다.df.groupby(['col_1', 'col_2']).count().reset_index()
언급URL : https://stackoverflow.com/questions/31569549/how-to-groupby-a-dataframe-in-pandas-and-keep-columns
'programing' 카테고리의 다른 글
| SQL Server 데이터베이스 복원 오류 (0) | 2023.10.04 | 
|---|---|
| "text" 속성을 사용하여 파일을 정규화한 후 git가 마스터 브랜치를 체크아웃하고 캐리지 리턴을 제거하려면 어떻게 해야 합니까? (0) | 2023.10.04 | 
| 사이트 루트 URL을 받으려면 어떻게 해야 합니까? (0) | 2023.09.24 | 
| XML로 표시된 Android 비트맵 이미지 크기 (0) | 2023.09.24 | 
| Angular JS에서 ngBind, ngBindHtm & ngBindTemplate의 차이 (0) | 2023.09.24 |