>

실제로는 훨씬 더 크고 12 개의 서로 다른 열을 기준으로 그룹화 된 데이터 프레임 인 샘플 데이터 프레임이 있습니다. 그룹 레이블 중 일부가 일치합니다.

Groupby로 그룹화 한 후 플로팅 할 데이터 프레임을 분할하는 데 문제가 있습니다.

A 열에 자동차가있는 모든 그룹의 입력과 출력을 플로팅하고 A와 B의 값으로 레이블을 붙인 범례를 만들고 싶습니다.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df_test = pd.DataFrame({'A': ['car', 'car', 'car', 'car', 'car', 'car', 'plane', 'plane', 'plane', 'plane', 'plane', 'plane',],
                   'B': ['one','one', 'two', 'two', 'three','three', 'one', 'one', 'two','two',  'three','three',],
                   'Input1': np.random.randn(12),
                   'Output1': np.random.randn(12)})
print(df_test)
grouped = df_test.groupby(['A', 'B'])
fig, ax = plt.subplots()
grouped.plot(x='Input1', y='Output1', ax=ax, legend=False)

여기서 나는 모든 그룹을 플로팅하지만 실제로 A 열에 자동차가 포함 된 그룹 만 플로팅하고 싶습니다

  • 답변 # 1

    이것을 시도하십시오. 아래 코드는 groupby를 사용한 후입니다.

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    df_test = pd.DataFrame({'A': ['car', 'car', 'car', 'car', 'car', 'car', 'plane', 'plane', 'plane', 'plane', 'plane', 'plane',],
                       'B': ['one','one', 'two', 'two', 'three','three', 'one', 'one', 'two','two',  'three','three',],
                       'Input1': np.random.randn(12),
                       'Output1': np.random.randn(12)})
    print(df_test)
    grouped = df_test.groupby(['A', 'B'])
    grouped=grouped.first().reset_index()
    grouped=grouped.loc[grouped['A']=='car']
    fig, ax = plt.subplots()
    grouped.plot(x='Input1', y='Output1', ax=ax, legend=False)
    plt.show()
    
    

    'car' 와 같은 값만 필터링하려면  열 A에서 아래 코드를 사용해보십시오.

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    df_test = pd.DataFrame({'A': ['car', 'car', 'car', 'car', 'car', 'car', 'plane', 'plane', 'plane', 'plane', 'plane', 'plane',],
                       'B': ['one','one', 'two', 'two', 'three','three', 'one', 'one', 'two','two',  'three','three',],
                       'Input1': np.random.randn(12),
                       'Output1': np.random.randn(12)})
    print(df_test)
    grouped=df_test.loc[df_test['A']=='car']
    fig, ax = plt.subplots()
    grouped.plot(x='Input1', y='Output1', ax=ax, legend=False)
    plt.show()
    
    

    업데이트 : 아래 코드도 시도하십시오.

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    df_test = pd.DataFrame({'A': ['car', 'car', 'car', 'car', 'car', 'car', 'plane', 'plane', 'plane', 'plane', 'plane', 'plane',],
                       'B': ['one','one', 'two', 'two', 'three','three', 'one', 'one', 'two','two',  'three','three',],
                       'Input1': np.random.randn(12),
                       'Output1': np.random.randn(12)})
    print(df_test)
    grouped=df_test.loc[df_test['A']=='car']
    grouped = grouped.groupby(['A','B'])
    fig, ax = plt.subplots()
    grouped.plot(x='Input1', y='Output1', ax=ax, legend=True)
    plt.show()
    
    

  • 이전 Django 템플릿 내에서 현재 URL을 얻는 방법은 무엇입니까?
  • 다음 javascript - 고정 된 물체를 전역 상태로 유지