红白葡萄酒问题 :哪个水平的酸度(pH 值)获得的平均评级最高?
思路:先用pd.cut() 对酸度进行划分,再用pd.groupby()对划分好的区间进行分组求评分的平均值。
import pandas as pd
df = pd.read_csv('winequality_edited.csv') #'winequality_edited.csv'这是合并后的数据
# 用 Pandas 描述功能查看最小、25%、50%、75% 和 最大 pH 值
pd.describe()['pH']
输出:
count 6497.000000 mean 3.218501 std 0.160787 min 2.720000 25% 3.110000 50% 3.210000 75% 3.320000 max 4.010000 Name: pH, dtype: float64
# 对用于把数据“分割”成组的边缘进行分组
bin_edges = [ 2.72, 3.11, 3.21, 3.32, 4.01]# 用刚才计算的五个值填充
'''
酸度水平:
- 高: 最低 25% 时的 pH 值
- 中等偏高: 25% - 50% 时的 pH 值
- 中: 50% - 75% 时的 pH 值
- 低: 最高 75% 时的 pH 值
'''
# 四个酸度水平组的标签
bin_names = [ 'high', 'medium_to_high', 'medium', 'low']# 对每个酸度水平类别进行命名
# 创建 acidity_levels 列
df['acidity_levels'] = pd.cut(df['pH'], bin_edges, labels=bin_names)
# 检查该列是否成功创建
df.head()
# 用 groupby 计算每个酸度水平的平均质量
df.groupby('acidity_levels')['quality'].mean()
# 保存更改
df.to_csv('winequality_edited.csv', index=False)