簡體   English   中英

使用Pandas DataFrame的groupby功能快速繪制許多列的直方圖

[英]plot histogram for many columns quickly using groupby function of pandas dataframe

我有一個熊貓數據框,看起來像 在此處輸入圖片說明 這里的一列稱為label ,它只能采用兩個可能的值0或1。

我想分別為標簽1和標簽0制作直方圖

在此處輸入圖片說明

我可以使它成為以下列之一(名為“ MA_CL05”):

temp = infile.groupby('label')
for k, v in temp:
  if k == 1:
    v.MA_CL05.hist(label='1',figsize=(15,15),bins=25,alpha=1.0,histtype = 'step',lw=4)
  if k == 0:
    v.MA_CL05.hist(label='0',figsize=(15,15),bins=25,alpha=1.0,histtype = 'step',lw=4)
plt.legend(loc=1, prop={'size': 51})
plt.show()

我可以復制並粘貼所有20列的補丁,這很好。 但是,有沒有一種簡單的方法可以一次性繪制出類型( 2 )的直方圖?

您可以添加另一個循環,圍繞數據框的列循環並指定要繪制到的軸。

fig, axes = plt.subplots(4,5)

for col,ax in zip(infile.columns[2:],axes.flatten()):
    temp = infile.groupby('label')
    for k, v in temp:
        v[col].hist(label=str(k),bins=25,alpha=1.0,histtype = 'step',lw=4, ax=ax)

plt.legend(loc=1, prop={'size': 51})
plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM