python - 如何从数据框中提取列并从中制作箱线图?
问题描述
我有一个从 Stata 数据库导入的数据框,我已经重命名了它的列,我试图从其中一列(例如“比索”)制作一个箱线图,但是当我绘制它时,图表显示所有数据框。我怎样才能提取列并绘制它?
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 的箱线图。我已经注释掉了标题规范,因为它会自动显示标题。有关详细信息,请参阅此页面。
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()
推荐阅读
- python-3.x - 安装 basemaplib 时出错
- ionic-framework - 如何在 Ionic 中获得位置准确性
- visual-studio-2017 - Visual C# 2017 代码编辑器突然停止复制为富文本
- python - 如何在从字符串列表写入 csv 时在第一列上添加时间戳
- c - 将来自 strtok() 的标记存储在双指针“二维数组”中
- visual-studio - 如何从 Visual Studio 2017 发布 Visual Basic 6 项目?
- javascript - 最有效的数据存储方式
- apache - Camel ftp2 quartz2 调度程序在启动路由后立即触发
- c# - UI 测试不关注 chrome
- php - 如何防止用户两次上传同一个文件 WordPress