python - 使用 Pandas 计算某些列/条目的统计信息?
问题描述
我基本上是在尝试使用 pandas 从 .csv 文件中获取最大值、最小值、平均值等,尽管我得到了一些奇怪的输出。我也想按特定品牌过滤。例如,假设品牌 Ford 有更多条目,我想打印所有 Fords 的最大值。
前任。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
解决方案
您可以使用.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
推荐阅读
- asp.net - ASP.NET Web 窗体按钮未在代码隐藏中引用
- c++ - 如何在类级别专门化模板类
- package.json - package.json:将多个脚本添加到一个脚本中
- testing - 如何在邮递员中正则表达式 Content-Disposition 标头值?
- ruby-on-rails - 运行资产时的 Rails 链轮上下文:为 nil:NilClass 预编译未定义的方法 `[]'
- reactjs - 使用 axios 拦截器时,我无法在 try and catch 块中获取 AxiosError 实例
- linux - 在 Linux 中删除指向旧版本程序的链接
- python - 如何使用字典替换文本中的字母?
- java - Android 12 上的“android:exported 需要明确指定”
- python - 没有为 sqlite3 找到匹配的分布