📜  如何在 Pandas 中绘制均值和标准差?

📅  最后修改于: 2022-05-13 01:54:45.388000             🧑  作者: Mango

如何在 Pandas 中绘制均值和标准差?

误差条是指数据框中包含的误差的绘图图表,它显示了一组测量值或计算值的置信度和精度。误差条有助于显示实际和准确的缺失部分,并直观地显示数据框中不同区域的错误。误差线是一种描述性行为,它包含有关数据差异的信息以及进行适当更改以构建对用户更具洞察力和影响力的数据的建议。

在这里,我们讨论了在使用某些应用条件对数据框进行分组之后,我们如何绘制带有均值和标准差的误差条,以使错误变得更加真实,从而获得最佳结果和可视化是必要的。

需要的模块:

pip install numpy
pip install pandas
pip install matplotlib

这是我们用均值和标准说明误差条的 DataFrame:

Python3
# Import the necessary libraries to read
# dataset and work on that
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
 
# Make the dataframe for evaluation on Errorbars
df = pd.DataFrame({
    'insert': [0.0, 0.1, 0.3, 0.5, 1.0],
    'mean': [0.009905, 0.45019, 0.376818, 0.801856, 0.643859],
    'quality': ['good', 'good', 'poor', 'good', 'poor'],
    'std': [0.003662, 0.281895, 0.306806, 0.243288, 0.322378]})
 
print(df)


Python3
# Subplots as having two types of quality
fig, ax = plt.subplots()
 
for key, group in df.groupby('quality'):
    group.plot('insert', 'mean', yerr='std',
               label=key, ax=ax)
 
plt.show()


Python3
# Groupby the quality column using aggregate
# value of mean and std
qual = df.groupby("quality").agg([np.mean, np.std])
qual = qual['insert']
qual.plot(kind = "barh", y = "mean", legend = False,
          xerr = "std", title = "Quality", color='green')


Python3
# reading the dataset
df = pd.read_csv('Toast.csv')
df_prices = df.groupby("type").agg([np.mean, np.std])


Python3
prices = df_prices['AveragePrice']
 
# checking for results
prices.head()


Python3
prices.plot(kind = "barh", y = "mean", legend = False,
            title = "Average Prices")


Python3
prices.plot(kind = "barh", y = "mean", legend = False,
            title = "Average Prices", xerr = "std")



输出:

示例数据框

对带有均值和标准的子图进行分组以获得误差线:

Python3

# Subplots as having two types of quality
fig, ax = plt.subplots()
 
for key, group in df.groupby('quality'):
    group.plot('insert', 'mean', yerr='std',
               label=key, ax=ax)
 
plt.show()


输出:

示例 1:带分组图的 ErrorBar

现在我们看到使用 NumPy 关键字 mean 和 std 的误差线:

Python3

# Groupby the quality column using aggregate
# value of mean and std
qual = df.groupby("quality").agg([np.mean, np.std])
qual = qual['insert']
qual.plot(kind = "barh", y = "mean", legend = False,
          xerr = "std", title = "Quality", color='green')


输出:

示例 2:带条形图的 ErrorBar

通过上面的例子,我们可以看到数据帧中质量差的错误高于好,而不是更多的好值。

现在,我们用下面的数据框移动另一个示例:

数据集——吐司

通过上面的数据框,我们必须通过使用具有不同价格的袋子的“类型”列来操纵这个数据框来获取误差线。要操作和执行计算,我们必须使用具有原型的df.groupby函数来检查字段并执行函数来评估结果。

我们使用了 mean 和 std 两个内置函数:

df.groupby("col_to_group_by").agg([func_1, func_2, func_3, .....])

Python3

# reading the dataset
df = pd.read_csv('Toast.csv')
df_prices = df.groupby("type").agg([np.mean, np.std])


由于我们必须评估平均价格,因此将这个 groupby 应用于“AveragePrice”。此外,检查价格结果并通过可视化显示误差线

Python3

prices = df_prices['AveragePrice']
 
# checking for results
prices.head()


输出:

结果:groupby() 的合计值

使用平均值的误差条:

Python3

prices.plot(kind = "barh", y = "mean", legend = False,
            title = "Average Prices")


输出:

示例 3:带有平均值的误差线

通过上面的可视化,很明显有机的平均价格高于传统的

使用标准偏差 (std) 的误差线:

Python3

prices.plot(kind = "barh", y = "mean", legend = False,
            title = "Average Prices", xerr = "std")

输出:

示例 4:带有标准的错误栏

误差线的优点:

  • 误差线是更多的障碍。
  • 它们易于执行,具有良好的估计值。
  • 由于数据框的复杂解释能力,因此相对统一。