다중 중첩 Json을 얻기 위해 여러 열로 그룹화하는 Pandas

jscriptor

다음과 같은 데이터 프레임이 있습니다.

Lvl1  lvl2  lvl3  lvl4  lvl5
x     1x    3xx   1     "text1"
x     1x    3xx   2     "text2"
x     1x    3xx   3     "text3"
x     1x    4xx   4     "text4"
x     2x    4xx   5     "text5"
x     2x    4xx   6     "text6"
y     2x    5xx   7     "text7"
y     3x    5xx   8     "text8"
y     3x    5xx   9     "text9"
y     3x    6xx   10    "text10"
y     4x    7xx   11    "text11"
y     4x    7xx   62    "text12"
y     4x    8xx   62    "text13"
z
z
z
w
w
w

I would like to convert to nested json so it looks like this:

[{
  "x":{
         "1x":[{
                "3xx": [
                {
                lvl4: 1
                lvl5: "text1"
                },
                {
                lvl4: 2
                lvl5: "text2"
                },
                {
                lvl4: 3
                lvl5: "text3"
                }],
                "4xx": [
                {
                lvl4: 4
                lvl5: "text4"
                }],
         "2x":[{
                "4xx": [
                {
                lvl4: 5
                lvl5: "text5"
                },
                {
                lvl4: 6
                lvl5: "text6"
                }],
                "5xx": [
                {
                lvl4: 7
                lvl5: "text7"   
                }],
                }]

. . .

여기 에서 예제를 시작으로 사용하고 있지만 표시된 데이터에서와 같이 들여 쓰기 된 lvl1, lvl2, lvl3이 필요합니다. 참조 예제는 동일한 수준에서 lvl1, lvl2, lvl3을 반환합니다.

또한 lvl 값이되도록 lvl의 키가 필요합니다. 예 : "lvl1"이 아닌 "x".

[{
  "x":{

감사합니다

나는 T-bone의 컷을 원합니다

예상 출력에 따라 세 개의 중첩 groupbyto_dict. 더 나은 방법이 있지만 적어도 시작은 가능합니다.

[df.groupby('Lvl1')\
  .apply(lambda x: x.groupby('lvl2')\
                    .apply(lambda x: [x.groupby('lvl3')
                                       .apply(lambda x: x[['lvl4','lvl5']].to_dict('r')
                                              ).to_dict()]
                          ).to_dict()
  ).to_dict()]

[{'x': {'1x': [{'3xx': [{'lvl4': 1, 'lvl5': '"text1"'},
                        {'lvl4': 2, 'lvl5': '"text2"'},
                        {'lvl4': 3, 'lvl5': '"text3"'}],
                '4xx': [{'lvl4': 4, 'lvl5': '"text4"'}]
                }],
        '2x': [{'4xx': [{'lvl4': 5, 'lvl5': '"text5"'},
                        {'lvl4': 6, 'lvl5': '"text6"'}]}]},...

정확한 외부 형식에 의문이 있습니다.

@Trenton McKinney 덕분에 편집하면 다음과 같이 보입니다.

df['lvl5'] = df['lvl5'].str.strip('"')
test = [df.groupby('Lvl1')\
          .apply(lambda x: x.groupby('lvl2')\
                            .apply(lambda x: [x.groupby('lvl3')
                                               .apply(lambda x: x[['lvl4','lvl5']].to_dict('r')
                                                      ).to_dict()]
                                  ).to_dict()
          ).to_dict()]

import json
json_res = list(map(json.dumps, test))

그런 다음 json_resjson 요구에 맞출 수 있습니다.

노트 :

  • 다음 코드 test는 큰 따옴표로 묶인 json 형식으로 올바르게 저장 됩니다.
with open('data.json', 'w') as f:
    json.dump(test, f)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

여러 열로 그룹화 된 Pandas 데이터 프레임에서 중첩 된 JSON 가져 오기

분류에서Dev

중복을 위해 여러 카테고리로 그룹화하는 팬더

분류에서Dev

보다 정확한 결과를 얻기 위해 여러 WHERE 절을 대괄호로 그룹화하는 방법

분류에서Dev

중첩 컬렉션을 사용하여 여러 열을 그룹화하는 LINQ

분류에서Dev

시간을 기준으로 pandas 그룹화하여 일중 변동성을 얻습니다.

분류에서Dev

여러 중첩 된 JSON 파일을 Pandas DataFrame으로 읽기

분류에서Dev

Pandas 데이터 프레임은 여러 열로 그룹화하고 중복 행을 삭제합니다.

분류에서Dev

Pandas를 사용하여 가중치를 기준으로 출력을 얻기 위해 일부 매개 변수 (열)에 가중치를 적용하는 방법

분류에서Dev

가중 행 단위 평균을 얻기 위해 그룹별로 열을 pmap

분류에서Dev

PHP를 사용하여 SQL 쿼리의 중첩 배열을 그룹화하여 jqTree 플러그인 용 JSON 가져 오기

분류에서Dev

AD 하위 그룹을 얻기위한 PowerShell 중첩 ForEach 루프

분류에서Dev

json to dict, 중첩 열을 기반으로 여러 행 생성?

분류에서Dev

한 열로 그룹화하여 다중 열을 선택하는 방법

분류에서Dev

중첩 된 그룹 구성원을 열거하기 위해 자신을 호출하는 함수

분류에서Dev

목록 열을 여러 열로 나열 해제 / 중첩 해제

분류에서Dev

가장 깊은 중첩 내부의 속성으로 그룹화 된 행을 사용하여 Pandas DataFrame에서 중첩 된 JSON 생성

분류에서Dev

중첩 된 배열을 기반으로 객체 배열 다시 그룹화

분류에서Dev

여러 postgres jsonb 배열을 병렬로 중첩 해제하는 방법

분류에서Dev

POST 요청 C #을 위해 JSON을 JSON 배열 (중첩 JSON)로 직렬화

분류에서Dev

중첩 된 JSON을 다중 중첩이있는 테이블로 가져 오기

분류에서Dev

MySQL 중첩을 줄이기 위해 여러 from_str 교체

분류에서Dev

여러 열 중첩 해제

분류에서Dev

JSON 기반의 다중 인덱스 계층 적 인덱스를 사용하여 깊이 중첩 된 JSON을 Pandas Dataframe으로 변환

분류에서Dev

다른 열을 기준으로 여러 열을 그룹화하여 순위 지정

분류에서Dev

다중 선택 설문 조사 질문을 분할하기 위해 티블 내부에 여러 티블을 중첩 해제

분류에서Dev

하나의 열로 그룹화되었지만 다른 열 중 하나 이상에서는 다른 값을 찾기위한 SQL Server 쿼리

분류에서Dev

Rails 중첩 된 해시로 그룹화하는 방법

분류에서Dev

Pandas의 열을 기반으로 값을 그룹화하고 그룹 중복 제거

분류에서Dev

Pandas는 여러 열에 대해 중복을 폭발 및 삭제합니다.

Related 관련 기사

  1. 1

    여러 열로 그룹화 된 Pandas 데이터 프레임에서 중첩 된 JSON 가져 오기

  2. 2

    중복을 위해 여러 카테고리로 그룹화하는 팬더

  3. 3

    보다 정확한 결과를 얻기 위해 여러 WHERE 절을 대괄호로 그룹화하는 방법

  4. 4

    중첩 컬렉션을 사용하여 여러 열을 그룹화하는 LINQ

  5. 5

    시간을 기준으로 pandas 그룹화하여 일중 변동성을 얻습니다.

  6. 6

    여러 중첩 된 JSON 파일을 Pandas DataFrame으로 읽기

  7. 7

    Pandas 데이터 프레임은 여러 열로 그룹화하고 중복 행을 삭제합니다.

  8. 8

    Pandas를 사용하여 가중치를 기준으로 출력을 얻기 위해 일부 매개 변수 (열)에 가중치를 적용하는 방법

  9. 9

    가중 행 단위 평균을 얻기 위해 그룹별로 열을 pmap

  10. 10

    PHP를 사용하여 SQL 쿼리의 중첩 배열을 그룹화하여 jqTree 플러그인 용 JSON 가져 오기

  11. 11

    AD 하위 그룹을 얻기위한 PowerShell 중첩 ForEach 루프

  12. 12

    json to dict, 중첩 열을 기반으로 여러 행 생성?

  13. 13

    한 열로 그룹화하여 다중 열을 선택하는 방법

  14. 14

    중첩 된 그룹 구성원을 열거하기 위해 자신을 호출하는 함수

  15. 15

    목록 열을 여러 열로 나열 해제 / 중첩 해제

  16. 16

    가장 깊은 중첩 내부의 속성으로 그룹화 된 행을 사용하여 Pandas DataFrame에서 중첩 된 JSON 생성

  17. 17

    중첩 된 배열을 기반으로 객체 배열 다시 그룹화

  18. 18

    여러 postgres jsonb 배열을 병렬로 중첩 해제하는 방법

  19. 19

    POST 요청 C #을 위해 JSON을 JSON 배열 (중첩 JSON)로 직렬화

  20. 20

    중첩 된 JSON을 다중 중첩이있는 테이블로 가져 오기

  21. 21

    MySQL 중첩을 줄이기 위해 여러 from_str 교체

  22. 22

    여러 열 중첩 해제

  23. 23

    JSON 기반의 다중 인덱스 계층 적 인덱스를 사용하여 깊이 중첩 된 JSON을 Pandas Dataframe으로 변환

  24. 24

    다른 열을 기준으로 여러 열을 그룹화하여 순위 지정

  25. 25

    다중 선택 설문 조사 질문을 분할하기 위해 티블 내부에 여러 티블을 중첩 해제

  26. 26

    하나의 열로 그룹화되었지만 다른 열 중 하나 이상에서는 다른 값을 찾기위한 SQL Server 쿼리

  27. 27

    Rails 중첩 된 해시로 그룹화하는 방법

  28. 28

    Pandas의 열을 기반으로 값을 그룹화하고 그룹 중복 제거

  29. 29

    Pandas는 여러 열에 대해 중복을 폭발 및 삭제합니다.

뜨겁다태그

보관