pandas 如何在Plotly中绘制平均值线而不是每个单个值

dy1byipe  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(180)

首先;对不起,如果我在这里写的东西没有达到stackoverflow的标准,我正在尽我最大的努力。
我有一个dataframe,大约有18 k行和89列,其中有关于足球运动员的信息。
例如,我需要绘制一个线形图,以可视化年龄和球员的整体评级之间的联系。
但是当我用下面的公式画一条线时:

fig = px.line(df, x="Age", y="Overall")
fig.show()

这就是结果:
Bad Result
这显然不是一个好的形象化。
我想绘制每个年龄段的平均评分,所以这是一条显示年龄和总体评分之间联系的单线。有简单的绘图功能吗?还是我必须自己创建正确的数据?

ajsxfq5m

ajsxfq5m1#

听起来您可能希望在此处对“age”执行groupby(),然后对“overall”执行平均操作,以在插入绘图函数之前创建最终 Dataframe 。
粗略地说,

import pandas as pd

data = {
    "age": [1, 1, 2, 2, 3, 3],
    "overall": [50, 100, 1, 1, 600, 700],
    # clarifies how to select the correct column to average
    "irrelevant": [1, 1, 1, 1, 1, 1]
}

df = pd.DataFrame(data)
new_df = df.groupby('age')['overall'].mean()
new_df

# age
# 1     75.0
# 2      1.0
# 3    650.0
# Name: overall, dtype: float64

或者,如果您愿意用单个点来显示趋势,也可以使用散点图。有时,散点图在这种情况下非常有用,因为一条平均线在x轴上的每个点上可能有非常不同的样本大小,所以您可能会通过绘制一条线来“丢失”信息。

相关问题