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 중국어 웹사이트의 기타 관련 기사를 참조하세요!