如何从数据框中提取列并从中制作箱线图?
How to extract a column from a dataframe and make a boxplot from it?
我有一个从 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()
我有一个从 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()