복붙노트

[PYTHON] pandas DataFrame에서 그룹화 된 데이터의 막대 그래프 그리기

PYTHON

pandas DataFrame에서 그룹화 된 데이터의 막대 그래프 그리기

팬더 데이터 프레임에서 그룹화 된 데이터로부터 히스토그램 블록을 그릴 수있는 방법에 대한 지침이 필요합니다. 다음은 내 질문을 설명하는 예입니다.

from pandas import DataFrame
import numpy as np
x = ['A']*300 + ['B']*400 + ['C']*300
y = np.random.randn(1000)
df = DataFrame({'Letter':x, 'N':y})
grouped = df.groupby('Letter')

내 무지에서 나는이 코드 명령을 시도 :

df.groupby('Letter').hist()

"TypeError : 'str'및 'float'객체를 연결할 수 없습니다."라는 오류 메시지와 함께 실패했습니다.

어떤 도움을 가장 높이 평가.

해결법

  1. ==============================

    1.나는 롤에있어, 그냥 hist 메소드의 by 키워드를 사용하여 더 간단한 방법을 찾았다.

    나는 롤에있어, 그냥 hist 메소드의 by 키워드를 사용하여 더 간단한 방법을 찾았다.

    df['N'].hist(by=df['Letter'])
    

    그룹화 된 데이터를 빠르게 스캔 할 수있는 매우 편리한 바로 가기입니다!

    장래 방문자의 경우이 통화의 결과는 다음 차트와 같습니다.

  2. ==============================

    2.groupby 데이터 프레임이 계층 적 색인과 두 개의 열 (문자와 N)을 가지므로 .hist () 할 때 두 열의 막대 그래프, 따라서 str 오류를 만들려고하기 때문에 함수가 실패합니다.

    groupby 데이터 프레임이 계층 적 색인과 두 개의 열 (문자와 N)을 가지므로 .hist () 할 때 두 열의 막대 그래프, 따라서 str 오류를 만들려고하기 때문에 함수가 실패합니다.

    이것은 팬더 플롯 기능 (컬럼 당 하나의 플롯)의 기본 동작입니다. 따라서 각 글자가 하나의 컬럼이되도록 데이터 프레임을 재구성하면 원하는 것을 정확하게 얻을 수 있습니다.

    df.reset_index().pivot('index','Letter','N').hist()
    

    reset_index ()는 현재 색인을 색인이라는 열로 이동하기위한 것입니다. 그런 다음 피벗이 데이터 프레임을 가져 와서 각 문자에 대해 N 값을 모두 수집하여 열로 만듭니다. 400 행 (NaN으로 누락 된 값 채우기) 및 세 개의 열 (A, B, C)으로 결과 데이터 프레임. 그런 다음 hist ()는 열마다 하나의 히스토그램을 생성하고 필요에 따라 플롯의 형식을 지정합니다.

  3. ==============================

    3.한 가지 해결책은 각 그룹화 된 데이터 프레임에서 직접 matplotlib 히스토그램을 사용하는 것입니다. 루프에서 얻은 그룹을 반복 할 수 있습니다. 각 그룹은 데이터 프레임입니다. 그리고 각각에 대한 막대 그래프를 만들 수 있습니다.

    한 가지 해결책은 각 그룹화 된 데이터 프레임에서 직접 matplotlib 히스토그램을 사용하는 것입니다. 루프에서 얻은 그룹을 반복 할 수 있습니다. 각 그룹은 데이터 프레임입니다. 그리고 각각에 대한 막대 그래프를 만들 수 있습니다.

    from pandas import DataFrame
    import numpy as np
    x = ['A']*300 + ['B']*400 + ['C']*300
    y = np.random.randn(1000)
    df = DataFrame({'Letter':x, 'N':y})
    grouped = df.groupby('Letter')
    
    for group in grouped:
      figure()
      matplotlib.pyplot.hist(group[1].N)
      show()
    
  4. from https://stackoverflow.com/questions/19584029/plotting-histograms-from-grouped-data-in-a-pandas-dataframe by cc-by-sa and MIT license