>  기사  >  백엔드 개발  >  `groupby`를 사용하여 Pandas DataFrame의 그룹 내에서 문자열을 연결하는 방법은 무엇입니까?

`groupby`를 사용하여 Pandas DataFrame의 그룹 내에서 문자열을 연결하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-24 18:35:04503검색

How to Concatenate Strings within Groups in a Pandas DataFrame Using `groupby`?

Pandas groupby: 문자열 연결 얻기

열 중 하나에 문자열이 포함된 DataFrame으로 작업할 때 기본 sum() 함수 항상 원하는 결과를 제공하지 못할 수도 있습니다. 각 그룹의 문자열을 연결하는 것이 목표인 이러한 시나리오에서 포괄적인 설명과 솔루션은 다음과 같습니다.

다음 DataFrame을 고려하세요.

   A         B       C
0  1  0.749065    This
1  2  0.301084      is
2  3  0.463468       a
3  4  0.643961  random
4  1  0.866521  string
5  2  0.120737       !

기본적으로 sum()을 적용합니다. "C" 열에 연결하면 다음과 같이 출력됩니다.

A
1    Thisstring
2           is!
3             a
4        random
dtype: object

각 그룹에 대해 문자열이 연결된 원하는 출력을 얻으려면 여러 가지 접근 방식이 있습니다.

적용 사용 () 함수:

한 가지 방법은 groupby 개체에 사용자 정의 함수를 적용하는 것입니다. 이 함수는 각 그룹 내의 문자열을 연결할 수 있습니다.

<code class="python">def f(x):
    return Series(dict(A = x['A'].sum(),
                        B = x['B'].sum(),
                        C = "{%s}" % ', '.join(x['C'])))

df.groupby('A').apply(f)</code>

또는:

apply() 및 람다 함수를 명시적으로 사용하여 동일한 결과를 얻을 수 있습니다.

<code class="python">df.groupby('A')['C'].apply(lambda x: "{%s}" % ', '.join(x))</code>

사용자 지정 논리 적용:

빈 문자열을 제거하거나 특정 구분 기호를 적용하는 등 사용자 지정이 필요한 경우 람다 함수 내에서 고유한 논리를 구현할 수 있습니다.

예를 들어, 빈 문자열을 제거하려면:

<code class="python">df.groupby('A')['C'].apply(lambda x: "{%s}" % ', '.join([c for c in x if c]))</code>

성능 고려 사항:

사용자 정의 기능을 적용하는 것이 sum() 함수가 내장되어 있습니다. 따라서 특정 요구 사항에 따라 성능 영향을 고려하는 것이 좋습니다.

위 내용은 `groupby`를 사용하여 Pandas DataFrame의 그룹 내에서 문자열을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.