code

팬더 그룹비와 섬 온리 원 칼럼

starcafe 2023. 11. 4. 13:11
반응형

팬더 그룹비와 섬 온리 원 칼럼

그래서 데이터 프레임을 가지고 있고,df1, 다음과 같이 보입니다.

       A      B      C
1     foo    12    California
2     foo    22    California
3     bar    8     Rhode Island
4     bar    32    Rhode Island
5     baz    15    Ohio
6     baz    26    Ohio

열별로 그룹을 나누고 싶습니다.A그다음에 합열B값을 열에 유지하면서C. 이와 같은 것:

      A       B      C
1    foo     34    California
2    bar     40    Rhode Island
3    baz     41    Ohio

문제는 제가 말씀드릴 때

df.groupby('A').sum()

기둥.C제거됨, 반환

      B
A
bar  40
baz  41
foo  34

어떻게 하면 이 일을 피할 수 있고 열을 유지할 수 있을까요?C내가 그룹을 만들어서 합칠 때?

이를 위한 유일한 방법은 (함수별 그룹은 목록을 허용할 수 있음) C를 그룹에 포함시키는 것입니다.

한 번 시도해 보십시오.

df.groupby(['A','C'])['B'].sum()

한 가지 더 주의해야 할 사항은 집계 후 df와 함께 작업해야 할 경우 다음을 사용할 수도 있습니다.as_index=False데이터 프레임 개체를 반환하는 옵션입니다.팬더와 처음 작업할 때 문제가 있었습니다.예:

df.groupby(['A','C'], as_index=False)['B'].sum()

네 칼럼에 뭐가 들어가든 상관없다면,C그리고 단지 그것을 원합니다.nthvalue, 그냥 이렇게 하면 됩니다.

df.groupby('A').agg({'B' : 'sum',
                     'C' : lambda x: x.iloc[n]})

다른 옵션은 다음을 사용하는 것입니다.groupby.agg사용합니다.first열에 메소드"C".

out = df.groupby('A', as_index=False, sort=False).agg({'B':'sum', 'C':'first'})

출력:

     A   B             C
0  foo  34    California
1  bar  40  Rhode Island
2  baz  41          Ohio

언급URL : https://stackoverflow.com/questions/38985053/pandas-groupby-and-sum-only-one-column

반응형