"使用Pandas计算特定列/条目的统计数据?"

2024-03-28 18:44:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我基本上是想用pandas从一个.csv文件中获取max,min,avg等,尽管我得到了一些奇怪的输出。我还想按特定品牌过滤。例如,假设福特品牌有更多的条目,我想打印所有福特的最大值。你知道吗

例如CSV

**Brand**              **Color**           **Price**

  Ford                    Red                  5

 Ferrari                  Blue                 10 

 Chevy                    Green                15

我的代码

import pandas as pd

df=pd.read_csv(r'Cars.csv')
df1 = df[['Brand','Price']]

groupby_MAX = df1.groupby(['Brand']).max()
groupby_MIN = df1.groupby(['Brand']).min()
groupby_AVG = df1.groupby(['Brand']).mean()
groupby_STD = df1.groupby(['Brand']).std()
groupby_RNG = (df1.groupby(['Brand']).max() - df1.groupby(['Brand']).min())


print('Max of values, grouped by Brand: ' + str(groupby_MAX))
print('\nMin of values, grouped by Brand: ' + str(groupby_MIN))

我的输出

Max of values, grouped by Brand:             Price
Brand         
Ford          5
Ferrari       10
Chevy         15

Min of values, grouped by Brand:             Price
Brand         
Ford         5
Ferrari      10
Chevy        15

我想要什么

Stats, grouped by Brand:             
    Brand        Max       Min     Mean   S.Dev 
    Ford          5         5        5      5
    Ferrari       10        10      10      10
    Chevy         15        15      15      15

Tags: ofcsvbyminpricemaxdf1values
1条回答
网友
1楼 · 发布于 2024-03-28 18:44:00

可以使用.agg在数据帧上聚合多个函数。你知道吗

示例:

自定义范围函数:

def rng(x):
    return x.max() - x.min()

.agg与内置函数和用户定义函数一起使用:

df.groupby(by='Brand').agg(['max', 'min', 'mean', 'std', rng])

这将产生:

        Price                  
          max min mean  std rng
Brand                          
Chevy      15  15   15  0.0   0
Ferrari    10  10   10  0.0   0
Ford        5   5    5  0.0   0

相关问题 更多 >