uproot : uproot 메서드 .pandas ()를 사용하여 TH2D 처리

giammi56

나는 뿌리를 내리고 파이썬을 처음 접했지만 빨리 따라 잡기를 바란다. 이 방법 .pandas()이 TH2D 히스토그램에서 이상한 테이블을 만드는 이유가 궁금합니다 .

myhisto = file["angular_distr_el/ID3_mol_e0_valid/EN_gate/check_cthetaEE_x"]
type(myhisto)

출력 :

uproot.rootio.TH2D

마지막으로 myhisto.pandas ()는 다음을 반환합니다.

        count   variance
cos(theta)  electron energy [eV]        
[-inf, -1.0)    [-inf, 10.0)    0.0 0.0
[10.0, 10.15)   0.0 0.0
[10.15, 10.3)   0.0 0.0
[10.3, 10.45)   0.0 0.0
[10.45, 10.6)   0.0 0.0
... ... ... ...
[1.0, inf)  [24.4, 24.549999999999997)  0.0 0.0
[24.549999999999997, 24.7)  0.0 0.0
[24.7, 24.85)   0.0 0.0
[24.85, 25.0)   0.0 0.0
[25.0, inf) 0.0 0.0
2244 rows × 2 columns

myhisto.columns반환 :

Index(['count', 'variance'], dtype='object')

.pandas()수행중인 작업을 이해 하는 방법 에 대한 문서는 어디에서 찾을 수 있습니까 ? myhisto올바른 열을 사용하여 DataFrame에서 재구성하는 방법이 있습니까?

giammi56

재미 있지만 필사적으로 브라우징 한 후 어떤 종류의 물건인지 이해합니다. 정렬 된 MultiIndex DataFrames 를 만드는 매우 영리한 방법입니다 . myhisto.index를 입력하기 만하면 직접 볼 수 있습니다.

MultiIndex([([-inf, -1.0),                [-inf, 10.0)),
            ([-inf, -1.0),               [10.0, 10.15)),
            ([-inf, -1.0),               [10.15, 10.3)),
            ([-inf, -1.0),               [10.3, 10.45)),
            ([-inf, -1.0),               [10.45, 10.6)),
            ([-inf, -1.0),               [10.6, 10.75)),
            ([-inf, -1.0),               [10.75, 10.9)),
            ([-inf, -1.0),               [10.9, 11.05)),
            ([-inf, -1.0),               [11.05, 11.2)),
            ([-inf, -1.0),               [11.2, 11.35)),
            ...
            (  [1.0, inf), [23.65, 23.799999999999997)),
            (  [1.0, inf), [23.799999999999997, 23.95)),
            (  [1.0, inf),               [23.95, 24.1)),
            (  [1.0, inf),               [24.1, 24.25)),
            (  [1.0, inf),               [24.25, 24.4)),
            (  [1.0, inf),  [24.4, 24.549999999999997)),
            (  [1.0, inf),  [24.549999999999997, 24.7)),
            (  [1.0, inf),               [24.7, 24.85)),
            (  [1.0, inf),               [24.85, 25.0)),
            (  [1.0, inf),                 [25.0, inf))],
           names=['cos(theta)', 'electron energy [eV]'], length=2244)

해결책은 DataFrame의 스택을 해제하거나 피벗 테이블을 만드는 것입니다. 이 특정 개체의 경우 원래 DataFrame의 열로 개수 및 분산이 존재하기 때문에 피벗 테이블이 더 좋습니다. 예로서:

myhisto.unstack()

count   ... variance
electron energy [eV]    [-inf, 10.0)    [10.0, 10.15)   [10.15, 10.3)   [10.3, 10.45)   [10.45, 10.6)   [10.6, 10.75)   [10.75, 10.9)   [10.9, 11.05)   [11.05, 11.2)   [11.2, 11.35)   ... [23.65, 23.799999999999997) [23.799999999999997, 23.95) [23.95, 24.1)   [24.1, 24.25)   [24.25, 24.4)   [24.4, 24.549999999999997)  [24.549999999999997, 24.7)  [24.7, 24.85)   [24.85, 25.0)   [25.0, inf)
cos(theta)                                                                                  
[-inf, -1.0)    0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[-1.0, -0.9)    0.0 1.0 1.0 0.0 0.0 2.0 0.0 2.0 0.0 1.0 ... 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
[-0.9, -0.8)    0.0 0.0 3.0 3.0 0.0 0.0 0.0 0.0 1.0 1.0 ... 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0
[-0.8, -0.7)    0.0 0.0 1.0 2.0 0.0 1.0 1.0 2.0 1.0 1.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[-0.7, -0.6)    0.0 0.0 1.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 0.0 1.0 1.0 0.0 0.0 1.0 0.0 0.0
[-0.6, -0.5)    0.0 1.0 1.0 1.0 0.0 0.0 2.0 1.0 0.0 3.0 ... 0.0 1.0 0.0 1.0 1.0 

**22 rows × 204 columns**

pivot_pipanda = pipanda.pivot_table(values="count", index="cos(theta)", columns="electron energy [eV]")

electron energy [eV]    [-inf, 10.0)    [10.0, 10.15)   [10.15, 10.3)   [10.3, 10.45)   [10.45, 10.6)   [10.6, 10.75)   [10.75, 10.9)   [10.9, 11.05)   [11.05, 11.2)   [11.2, 11.35)   ... [23.65, 23.799999999999997) [23.799999999999997, 23.95) [23.95, 24.1)   [24.1, 24.25)   [24.25, 24.4)   [24.4, 24.549999999999997)  [24.549999999999997, 24.7)  [24.7, 24.85)   [24.85, 25.0)   [25.0, inf)
cos(theta)                                                                                  
[-inf, -1.0)    0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[-1.0, -0.9)    0.0 1.0 1.0 0.0 0.0 2.0 0.0 2.0 0.0 1.0 ... 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
[-0.9, -0.8)    0.0 0.0 3.0 3.0 0.0 0.0 0.0 0.0 1.0 1.0 ... 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0
[-0.8, -0.7)    0.0 0.0 1.0 2.0 0.0 1.0 1.0 2.0 1.0 1.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[-0.7, -0.6)    0.0 0.0 1.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 0.0 1.0 1.0 0.0 0.0 1.0 0.0 0.0
[-0.6, -0.5)    0.0 1.0 1.0 1.0 0.0 0.0 2.0 1.0 0.0 3.0 ... 0.0 1.0 0.0 1.0 1.0 0.0 1.0 0.0 0.0 0.0
[-0.5, -0.3999999999999999) 0.0 0.0 2.0 0.0 1.0 1.0 3.0 2.0 3.0 1.0 ... 3.0 0.0 0.0 0.0 0.0 2.0 0.0 1.0 1.0 0.0

그리고 여기에서 판다의 표준 방법을 사용할 수 있습니다!

(loc [] 및 iloc []과 같은 슬라이싱 기술을 사용하려면 : https://www.youtube.com/watch?v=tcRGa2soc-c )

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python에서 uproot로 TMatrixT를 어떻게 읽습니까?

분류에서Dev

uproot : jupyter 노트북의 .root 파일에서 TH2 히스토그램을로드하고 다시 표시하는 가장 좋은 방법

분류에서Dev

uproot3가 어레이를 포함하는 TBranches를 쓸 수 있습니까?

분류에서Dev

uproot에서 배열의 제로 패딩 가변 길이

분류에서Dev

uproot의 문자열 배열

분류에서Dev

Python을 사용하여 메모리 효율적인 방식으로 Pandas를 사용하여 데이터 처리

분류에서Dev

uproot로 압축 문제가있는 트리 데이터 계속 읽기

분류에서Dev

uproot로 s3에서 파일을 읽는 방법은 무엇입니까?

분류에서Dev

uproot로 TGraph에 액세스하는 방법은 무엇입니까?

분류에서Dev

Pandas를 사용하여 메모리의 원격 셸 명령에서 Paramiko가 반환 한 데이터를 처리하는 방법은 무엇입니까?

분류에서Dev

pandas의 쿼리 메서드 내에서 re를 사용하는 방법

분류에서Dev

root_numpy root2array () 출력과 같은 uproot.iterate () 출력을 빠르게 얻는 방법

분류에서Dev

AspectJ를 사용하여 자체 예외를 처리하는 메서드를 가로채는 방법

분류에서Dev

js를 사용하여 입력에서 앰퍼샌드 (&) 처리

분류에서Dev

th : switch 및 th : each를 사용하여 thymeleaf에서 두 개의 목록을 처리하는 방법

분류에서Dev

th : switch 및 th : each를 사용하여 thymeleaf에서 두 개의 목록을 처리하는 방법

분류에서Dev

LinkedList를 사용하여 유사한 메서드 리팩토링

분류에서Dev

Pandas에서 하위 쿼리를 사용하여 선택

분류에서Dev

Javascript를 사용하여 HTML에서 여러 <select> 요소 처리

분류에서Dev

XSLT를 사용하여 2 개의 처리 명령 사이에 모든 노드를 래핑

분류에서Dev

쿼리를 사용하여 메소드에서 두 값 반환

분류에서Dev

ActionListener를 사용하여 재귀 트리 메서드 호출

분류에서Dev

indexOf를 사용하여 두 가지 메서드 리팩토링

분류에서Dev

C # 메서드를 사용하여 SQL 쿼리 실행

분류에서Dev

-D를 사용하여 매크로 전 처리기 인용

분류에서Dev

Python : 클래스를 사용하여 클래스 속성이 메서드 인수 인 것처럼 메서드 호출 처리

분류에서Dev

쿼리를 사용하여 Pandas Multiindex에서 행 선택

분류에서Dev

동기화 드라이버를 사용하여 Laravel 4에서 이메일 대기열 처리

분류에서Dev

Tomcat에서 다중 스레드를 사용하여 websocket 수신 메시지 처리

Related 관련 기사

  1. 1

    Python에서 uproot로 TMatrixT를 어떻게 읽습니까?

  2. 2

    uproot : jupyter 노트북의 .root 파일에서 TH2 히스토그램을로드하고 다시 표시하는 가장 좋은 방법

  3. 3

    uproot3가 어레이를 포함하는 TBranches를 쓸 수 있습니까?

  4. 4

    uproot에서 배열의 제로 패딩 가변 길이

  5. 5

    uproot의 문자열 배열

  6. 6

    Python을 사용하여 메모리 효율적인 방식으로 Pandas를 사용하여 데이터 처리

  7. 7

    uproot로 압축 문제가있는 트리 데이터 계속 읽기

  8. 8

    uproot로 s3에서 파일을 읽는 방법은 무엇입니까?

  9. 9

    uproot로 TGraph에 액세스하는 방법은 무엇입니까?

  10. 10

    Pandas를 사용하여 메모리의 원격 셸 명령에서 Paramiko가 반환 한 데이터를 처리하는 방법은 무엇입니까?

  11. 11

    pandas의 쿼리 메서드 내에서 re를 사용하는 방법

  12. 12

    root_numpy root2array () 출력과 같은 uproot.iterate () 출력을 빠르게 얻는 방법

  13. 13

    AspectJ를 사용하여 자체 예외를 처리하는 메서드를 가로채는 방법

  14. 14

    js를 사용하여 입력에서 앰퍼샌드 (&) 처리

  15. 15

    th : switch 및 th : each를 사용하여 thymeleaf에서 두 개의 목록을 처리하는 방법

  16. 16

    th : switch 및 th : each를 사용하여 thymeleaf에서 두 개의 목록을 처리하는 방법

  17. 17

    LinkedList를 사용하여 유사한 메서드 리팩토링

  18. 18

    Pandas에서 하위 쿼리를 사용하여 선택

  19. 19

    Javascript를 사용하여 HTML에서 여러 <select> 요소 처리

  20. 20

    XSLT를 사용하여 2 개의 처리 명령 사이에 모든 노드를 래핑

  21. 21

    쿼리를 사용하여 메소드에서 두 값 반환

  22. 22

    ActionListener를 사용하여 재귀 트리 메서드 호출

  23. 23

    indexOf를 사용하여 두 가지 메서드 리팩토링

  24. 24

    C # 메서드를 사용하여 SQL 쿼리 실행

  25. 25

    -D를 사용하여 매크로 전 처리기 인용

  26. 26

    Python : 클래스를 사용하여 클래스 속성이 메서드 인수 인 것처럼 메서드 호출 처리

  27. 27

    쿼리를 사용하여 Pandas Multiindex에서 행 선택

  28. 28

    동기화 드라이버를 사용하여 Laravel 4에서 이메일 대기열 처리

  29. 29

    Tomcat에서 다중 스레드를 사용하여 websocket 수신 메시지 처리

뜨겁다태그

보관