programing

판다의 데이터 프레임별 그룹화 및 열 유지 방법

starjava 2023. 10. 4. 20:28
반응형

판다의 데이터 프레임별 그룹화 및 열 유지 방법

다음과 같은 일부 책의 사용을 기록하는 데이터 프레임을 고려하면 다음과 같습니다.

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

반응형