파이썬을 사용하여 형제 노드의 정보에 조건부 노드 정보를 추출하는 방법은 무엇입니까?

이브

personId관심 있는 목록이 있습니다 .

agents = {'id': ['20','32','12']}

그런 다음 가정 특성이있는 XML 파일이 있습니다.

<households
    <household id="980921">
        <members>
            <personId refId="5"/>
            <personId refId="15"/>
            <personId refId="20"/>
        </members>
        <income currency="CHF" period="month">
                8000.0
        </income>
        <attributes>
            <attribute name="numberOfCars" class="java.lang.String" >2</attribute>
        </attributes>

    </household>
    <household id="980976">
        <members>
            <personId refId="2891"/>
            <personId refId="100"/>
            <personId refId="2044"/>
        </members>
        <income currency="CHF" period="month">
                8000.0
        </income>
        <attributes>
            <attribute name="numberOfCars" class="java.lang.String" >1</attribute>
        </attributes>

    </household>
    <household id="980983">
        <members>
            <personId refId="11110"/>
            <personId refId="32"/>
            <personId refId="34"/>
        </members>
        <income currency="CHF" period="month">
                10000.0
        </income>
        <attributes>
            <attribute name="numberOfCars" class="java.lang.String" >0</attribute>
        </attributes>

    </household>
</households>

내가 원하는 것은 데이터 프레임을 갖는 것입니다.이 데이터 프레임 income은 가정 member의 목록에 속하는 주택 agents이 관심 있는 것을 보여줍니다 . 다음과 같은 것 (더하기는 관심있는 사람이 거주하는 가구 구성원 수를 나타내는 추가 열입니다) :

personId    income
20          8000.0
32          10000.0

내 접근 방식은 너무 멀지 않았습니다. members"형제"노드에서 정보 를 필터링 하고 액세스 하는 방법에 어려움이 있습니다 . 내 출력은 빈 데이터 프레임입니다.

import xml.etree.ElementTree as ET
import pandas as pd

with open(xml) as fd:
    root = ET.parse(fd).getroot()

xpath_fmt = 'household/members/personId[@refId="{}"]/income'
rows = []
for pid in agents['id']:
    xpath = xpath_fmt.format(pid)
    r = root.findall(xpath)
    for res in r:
        rows.append([pid, res.text])
d = pd.DataFrame(rows, columns=['personId', 'income']) 

도와 주셔서 정말로 고맙습니다!

안드레이 케 슬리

의견에서 언급했듯이 BeautifulSoup을 사용하는 솔루션은 다음과 같습니다 ( xml_txt질문의 XML 텍스트입니다).

import pandas as pd
from bs4 import BeautifulSoup

agents = {'id': ['20','32','12']}

soup = BeautifulSoup(xml_txt, 'xml')  #xml_txt is your XML text from the question

css_selector = ','.join('household > members > personId[refId="{}"]'.format(i) for i in agents['id'])

data = {'personId':[], 'income':[]}
for person in soup.select(css_selector):
    data['personId'].append( person['refId'] )
    data['income'].append( person.find_parent('household').find('income').get_text(strip=True) )

df = pd.DataFrame(data)
print(df)

인쇄물:

  personId   income
0       20   8000.0
1       32  10000.0

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬을 사용하여 XML 문서의 부모 노드에 중첩 된 자식 노드를 추가하는 방법은 무엇입니까?

분류에서Dev

모듈없이 노드 js의 JWT에서 정보를 추출하는 방법은 무엇입니까?

분류에서Dev

igraph를 사용하여 특정 노드의 이웃을 추출하는 방법은 무엇입니까?

분류에서Dev

Python을 사용하여 여러 XML 노드 및 계층에서 정보를 추출하는 방법은 무엇입니까?

분류에서Dev

XSLT를 사용하여 자식 노드의 조건에 따라 부모 노드를 복사하는 방법은 무엇입니까?

분류에서Dev

Windows Forms의 TreeView에서 노드에서 정보를 추출하는 방법은 무엇입니까?

분류에서Dev

xml 형식의 노드 js에서 테이블 데이터를 추출하는 방법은 무엇입니까?

분류에서Dev

부모와 함께 xml 파일에서 특정 노드를 추출하는 방법은 무엇입니까?

분류에서Dev

JavaFX 노드-최종 사용자가 노드의 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

iframe의 복제 된 노드를 스타일을 사용하여 부모에 복사하는 방법은 무엇입니까?

분류에서Dev

파이썬을 사용하여 CSV 파일의 일부 정보를 올바르게 교체 (삭제)하는 방법은 무엇입니까?

분류에서Dev

SKConstraint를 사용하여 두 노드 사이의 거리를 설정하는 방법은 무엇입니까?

분류에서Dev

Slurm의 sbatch 명령을 사용하여 특정 노드에 작업을 제출하는 방법은 무엇입니까?

분류에서Dev

프롤로그를 사용하여 소프트 제약 조건을 지정하는 방법은 무엇입니까? (부드러운 제약이있는 퍼즐)

분류에서Dev

프롤로그를 사용하여 소프트 제약 조건을 지정하는 방법은 무엇입니까? (부드러운 제약이있는 퍼즐)

분류에서Dev

kubectl get 노드의 출력에서 taint 노드를 제외하는 방법은 무엇입니까?

분류에서Dev

beautifulsoup을 사용하여 여러 자식이있는 부모 및 자식 노드 정보를 데이터 프레임으로 추출하는 방법은 무엇입니까?

분류에서Dev

정보 디렉토리 노드의 메뉴를 업데이트하는 방법은 무엇입니까?

분류에서Dev

C #에서 xml 파서를 사용하여 xml에서 노드의 모든 값을 추출하는 방법은 무엇입니까?

분류에서Dev

정규식을 사용하여 파이썬에서 파일 이름의 정보로 열을 만드는 방법은 무엇입니까?

분류에서Dev

노드 내에서 메서드를 호출하는 내 노드의 속성 편집기 패널에 버튼을 추가하는 방법은 무엇입니까?

분류에서Dev

C # OpenCV를 사용하여 보안 문자의 노이즈를 제거하는 방법은 무엇입니까?

분류에서Dev

내부 HTML 형식을 유지하면서 DOMDocument를 사용하여 HTML 노드에 액세스하는 방법은 무엇입니까?

분류에서Dev

노드를 사용하여 업로드 후 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

지정된 유형의 모든 노드를 삭제하는 방법은 무엇입니까?

분류에서Dev

속성에 ID 노드를 추가하고 결과 neo4j에서 노드의 몇 가지 속성을 제거하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 Linux 장치 노드에 구조체를 전달하는 방법은 무엇입니까?

분류에서Dev

powershell을 사용하여 xml 파일에서 모든 자식 노드를 남기고 부모 노드 만 가져 오는 방법은 무엇입니까?

분류에서Dev

Maven을 사용하여 기존 XML 문서에 새 노드를 추가하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    파이썬을 사용하여 XML 문서의 부모 노드에 중첩 된 자식 노드를 추가하는 방법은 무엇입니까?

  2. 2

    모듈없이 노드 js의 JWT에서 정보를 추출하는 방법은 무엇입니까?

  3. 3

    igraph를 사용하여 특정 노드의 이웃을 추출하는 방법은 무엇입니까?

  4. 4

    Python을 사용하여 여러 XML 노드 및 계층에서 정보를 추출하는 방법은 무엇입니까?

  5. 5

    XSLT를 사용하여 자식 노드의 조건에 따라 부모 노드를 복사하는 방법은 무엇입니까?

  6. 6

    Windows Forms의 TreeView에서 노드에서 정보를 추출하는 방법은 무엇입니까?

  7. 7

    xml 형식의 노드 js에서 테이블 데이터를 추출하는 방법은 무엇입니까?

  8. 8

    부모와 함께 xml 파일에서 특정 노드를 추출하는 방법은 무엇입니까?

  9. 9

    JavaFX 노드-최종 사용자가 노드의 크기를 조정하는 방법은 무엇입니까?

  10. 10

    iframe의 복제 된 노드를 스타일을 사용하여 부모에 복사하는 방법은 무엇입니까?

  11. 11

    파이썬을 사용하여 CSV 파일의 일부 정보를 올바르게 교체 (삭제)하는 방법은 무엇입니까?

  12. 12

    SKConstraint를 사용하여 두 노드 사이의 거리를 설정하는 방법은 무엇입니까?

  13. 13

    Slurm의 sbatch 명령을 사용하여 특정 노드에 작업을 제출하는 방법은 무엇입니까?

  14. 14

    프롤로그를 사용하여 소프트 제약 조건을 지정하는 방법은 무엇입니까? (부드러운 제약이있는 퍼즐)

  15. 15

    프롤로그를 사용하여 소프트 제약 조건을 지정하는 방법은 무엇입니까? (부드러운 제약이있는 퍼즐)

  16. 16

    kubectl get 노드의 출력에서 taint 노드를 제외하는 방법은 무엇입니까?

  17. 17

    beautifulsoup을 사용하여 여러 자식이있는 부모 및 자식 노드 정보를 데이터 프레임으로 추출하는 방법은 무엇입니까?

  18. 18

    정보 디렉토리 노드의 메뉴를 업데이트하는 방법은 무엇입니까?

  19. 19

    C #에서 xml 파서를 사용하여 xml에서 노드의 모든 값을 추출하는 방법은 무엇입니까?

  20. 20

    정규식을 사용하여 파이썬에서 파일 이름의 정보로 열을 만드는 방법은 무엇입니까?

  21. 21

    노드 내에서 메서드를 호출하는 내 노드의 속성 편집기 패널에 버튼을 추가하는 방법은 무엇입니까?

  22. 22

    C # OpenCV를 사용하여 보안 문자의 노이즈를 제거하는 방법은 무엇입니까?

  23. 23

    내부 HTML 형식을 유지하면서 DOMDocument를 사용하여 HTML 노드에 액세스하는 방법은 무엇입니까?

  24. 24

    노드를 사용하여 업로드 후 파일을 삭제하는 방법은 무엇입니까?

  25. 25

    지정된 유형의 모든 노드를 삭제하는 방법은 무엇입니까?

  26. 26

    속성에 ID 노드를 추가하고 결과 neo4j에서 노드의 몇 가지 속성을 제거하는 방법은 무엇입니까?

  27. 27

    파이썬에서 Linux 장치 노드에 구조체를 전달하는 방법은 무엇입니까?

  28. 28

    powershell을 사용하여 xml 파일에서 모든 자식 노드를 남기고 부모 노드 만 가져 오는 방법은 무엇입니까?

  29. 29

    Maven을 사용하여 기존 XML 문서에 새 노드를 추가하는 방법은 무엇입니까?

뜨겁다태그

보관