연간 데이터 (각각 2014 년, 2015 년 및 2016 년)에 대해 3 데이터 프레임 (각각 'PRACTICE', 'BNF NAME', 'ITEMS'
)이 3 개 있습니다.pandas python을 사용하여 누적 막 대형 차트를 플롯하는 방법
BNF NAME은 약물 이름을 말하며 3 개의 암피실린, 아목시실린 및 Co-Amoxiclav를 골라냅니다. 이 칼럼은 다른 강도/용량 (예 : Co-Amoxiclav 200mg 또는 Co-Amoxiclav 300mg 등)을 무시하고 싶기 때문에 str.contains()
을 사용하여이 3 가지 약물을 선택했습니다. ITEMS
은 각 약물에 대해 작성된 처방전의 총 수입니다.
x 축을 연도 (2014, 2014, 2015)로하고 y 축을 총 처방 수로하여 누적 막 대형 차트를 만들고 각 약물에 대해 3 개로 분할 할 3 개의 막대 이름.
내가 df.groupby()
을 사용해야한다고 가정하고 있지만 어쩌면 부분 문자열을 선택할 수도 있습니다. 그러나 연간 데이터를 결합하는 방법과 누적 막 대형 차트를 만들기 위해 데이터를 그룹화하는 방법을 잘 모릅니다.
모든 안내를 주시면 감사하겠습니다.
이것은 3 개의 약 이름에 대해서만 행을 선택하는 데 사용하는 코드 행입니다.
frame=frame[frame['BNF NAME'].str.contains('Ampicillin' and 'Amoxicillin' and 'Co-Amoxiclav')]
이는 dataframes의 각과 유사한 것입니다 :
가능성이 작업을 수행 할 수있는 몇 가지 방법이있을거야PRACTICE | BNF NAME | ITEMS
Y00327 | Co-Amoxiclav_Tab 250mg/125mg | 23
Y00327 | Co-Amoxiclav_Susp 125mg/31mg/5ml S/F | 10
Y00327 | Co-Amoxiclav_Susp 250mg/62mg/5ml S/F | 6
Y00327 | Co-Amoxiclav_Susp 250mg/62mg/5ml | 1
Y00327 | Co-Amoxiclav_Tab 500mg/125mg | 50
플롯팅을 쉽게하기 위해 아마 세 개의 데이터 프레임을 하나의 데이터 프레임으로 결합하고자 할 것입니다. 실제 데이터의 작은 하위 집합 ('frame.head (5) .to_dict()')을 게시하면 더 빨리 당신을 도울 수있을 것입니다. – DataSwede
@DataSwede pd.concat()을 사용하고 있다고 가정합니다. 제가 추가 한 데이터 프레임 레이아웃의 스냅 샷을보십시오. –
@DataSwede 이것을 시도 할 때 결과 막대 차트는 누적되지 않습니다. 즉, 하나의 약물 (Co-amoxiclav)이있는 표준 막대 차트와 같습니다. 왜 그런가? 누락 된 값을 처리하기 위해 .fillna (False)를 추가했습니다.이 값과 관련이 있는지 여부는 확실하지 않습니다. –