>백엔드 개발 >파이썬 튜토리얼 >쉼표로 구분된 값을 기반으로 Pandas 데이터 프레임에서 셀을 여러 행으로 분할하는 방법은 무엇입니까?

쉼표로 구분된 값을 기반으로 Pandas 데이터 프레임에서 셀을 여러 행으로 분할하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-28 06:41:30762검색

How to Split a Cell into Multiple Rows in a Pandas Dataframe Based on Comma-Separated Values?

Pandas Dataframe에서 셀을 여러 행으로 분할

문제:

Pandas가 있습니다. 각 주문에는 '패키지' 및 '패키지_코드' 열에 쉼표로 구분된 문자열로 저장된 여러 패키지가 포함되어 있는 주문 데이터가 있는 데이터프레임입니다. 패키지 데이터를 분할하고 해당 주문 세부 정보가 포함된 각 패키지에 대한 새 행을 생성하려고 합니다.

해결책:

Pandas 버전 >= 0.25:

<code class="python">df.set_index(['order_id', 'order_date']) \
    .apply(lambda x: x.str.split(',').explode()) \
    .reset_index()</code>

Pandas 버전 <= 0.24:

<code class="python">df.set_index(['order_date', 'order_id']) \
    .stack() \
    .str.split(',', expand=True) \
    .stack() \
    .unstack(-2) \
    .reset_index(-1, drop=True) \
    .reset_index()

설명:

1. 인덱스 설정: 그대로 유지해야 하는 열('order_id' 및 'order_date')을 데이터 프레임의 인덱스로 설정합니다.

2. 분할 및 쌓기:

  • Pandas의 경우 >= 0.25: apply(lambda x: x.str.split(',').explode())를 사용하여 쉼표로 구분된 내용을 분할합니다. 'package' 및 'package_code' 열을 추가하고 여러 행으로 확장합니다.
  • Pandas <= 0.24의 경우: stack(), str.split() 및 stack()을 다시 사용하여 데이터를 분할하고 쌓습니다. .
  • 3. 인덱스 해제 및 재설정:

    • 마지막 두 번째 수준(-2)에서 스택 해제하여 분할 패키지 및 패키지 코드 데이터에 대한 새 열을 생성합니다.
    • 인덱스를 다음으로 재설정합니다. 인덱스 변경 사항을 되돌리고 최종 데이터 프레임을 얻습니다.

    위 내용은 쉼표로 구분된 값을 기반으로 Pandas 데이터 프레임에서 셀을 여러 행으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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