如何从数据框中提取列并从中创建箱线图?

问题描述

我有一个数据帧,该数据帧是从Stata数据库中导入的,并且已重命名了它的列,并且尝试从其中一个列(例如“ Peso”)制作箱形图,但是当我绘制它时,图形显示所有数据框。如何提取列并绘制图?

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df=pd.read_stata('Datos Peso Altura Genero.dta')
datos=df.rename(columns={'var1':'Sujeto','var2':'Peso','var3':'Altura','var4':'Género'})

    Sujeto  Peso  Altura Género
0        1    50     154      M
1        2    56     152      H
2        3    58     161      M
3        4    59     160      M
4        5    60     167      H
5        6    61     165      M
6        7    63     169      M
7        8    65     158      M
8        9    67     155      M
9       10    72     169      H
10      11    75     170      H
11      12    77     178      H
12      13    78     180      H
13      14    80     175      M
14      15    84     179      H

datos.Boxplot(column=['Peso'])
plt.title('Ejemplo peso')
plt.ylabel('Peso (kg)')
plt.show()

我希望我已经说清楚了,谢谢您的回答。

解决方法

如果指定by=['Género'],将得到带有H和M的箱形图。我已注释掉标题说明,因为它将自动显示标题。有关详细信息,请参见this page

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import io

data = '''
 Sujeto Peso Altura Género
0 1 50 154 M
1 2 56 152 H
2 3 58 161 M
3 4 59 160 M
4 5 60 167 H
5 6 61 165 M
6 7 63 169 M
7 8 65 158 M
8 9 67 155 M
9 10 72 169 H
10 11 75 170 H
11 12 77 178 H
12 13 78 180 H
13 14 80 175 M
14 15 84 179 H
'''

df = pd.read_csv(io.StringIO(data),sep='\s+')

# df=pd.read_stata('Datos Peso Altura Genero.dta')
datos = df.rename(columns={'var1':'Sujeto','var2':'Peso','var3':'Altura','var4':'Género'})

datos.boxplot(column=['Peso'],by=['Género'])

# plt.title('Ejemplo peso')
plt.ylabel('Peso (kg)')
plt.show()

enter image description here