python数据帧上的平均值和最大值

Posted

技术标签:

【中文标题】python数据帧上的平均值和最大值【英文标题】:Average and Max on python dataframe 【发布时间】:2020-07-04 13:47:24 【问题描述】:

是否可以在数据帧上同时进行最大和平均操作。我的目标是为 Python 中的以下数据创建条形图和折线图。

    查找得分最高的前 3 个国家德国、加拿大、法国 对于上面找到的国家/地区找到平均价格

柱将在最大点上,而趋势线将在平均价格上

import numpy as np

dfrn1 = pd.DataFrame(
    'country' : np.array(['France', 'US', 'France', 'US', 'Germany', 'US', 'France', 'France', 'India', 'Canada' ]),
    'price' : np.array([1,2,3,4,5,6,7,8,9,7]),
    'points' : np.array([98,88,90,90,100,69,87,87,87,99 ])
)

dfrn1

这就是我所拥有的

country = dfrn1.groupby("country")

country.describe().head()

t1 = country.points.max().sort_values(ascending=False).head(4).reset_index(name='points')
t2 = country.price.mean().reset_index(name='price') 

mergedStuff = pd.merge(t1, t2, on=['country'], how='inner')
mergedStuff

fig = go.Figure()

fig.add_trace(
    go.Bar(
        x= mergedStuff['country'],
        y= mergedStuff['points'],
        name="Maximum Points" ,
        marker=dict(color = '#47d2fc'),

    ))
fig.add_trace(
    go.Scatter(
        x= mergedStuff['country'],
        y= mergedStuff['price'],
        name="Average Price" ,
        line=go.scatter.Line(color="crimson"),
    ))        

fig.show()

【问题讨论】:

您是否对此进行过任何研究,或尝试过自己解决问题?计算 pandas DataFrames 的均值和最大值是一个非常常见的应用,有很多很容易找到的资源。 是的,奥利弗先生,我想出了一个很难做到的方法,只是想找到一些简单有效的方法 如果你包含你的方法,其他人可能更容易指出你如何改进你正在做的事情 感谢 suraj Subramanian,PRICE 应该是平均值,而不是最高点。这是一个两步问题 我确实计算了前 3 点国家的平均价格。你能分享你想要的输出吗? 【参考方案1】:
temp = dfrn1['points'].nlargest(3)
df2 = pd.merge(dfrn1, temp).sort_values('points', ascending=False) # creates a dataframe of top 3 countries with maximum points sorted in descending order

df2
df2["price"].mean()

不是最有效的解决方案,但希望对您有所帮助!

【讨论】:

以上是关于python数据帧上的平均值和最大值的主要内容,如果未能解决你的问题,请参考以下文章

python求最大值、最小值、求和、平均值

关于python计算的问题。怎样计算平均值,最大值和最小值???

813. 最大平均值和的分组(Python)

大型python数据帧上的快速数据处理

如何在python中找到输入数字的平均值、最小值、最大值和范围?

在python中找到二维矩阵(二维)中不同列表的最小值、最大值和平均值