如何通过在python中过滤另一列来计算列的均值?

时间:2018-10-19 14:55:46

标签: python python-3.x

我有一个文件autos.csv,其中包含汽车的详细信息以及其品牌和要出售的价格。我正在使用python分析其中的数据。文件中有许多列。文件中的两列是价格和品牌。品牌是大众,福特,雷诺等。我想选择一个特定的品牌,然后计算该品牌价格的平均值。如何使用Pandas在python中做到这一点?

这是数据的屏幕截图 https://prnt.sc/l80lf0

2 个答案:

答案 0 :(得分:1)

不使用第三方库,您可以这样做:

import csv
import numpy

nums = []
with open('test.csv','rb') as f:
    reader = csv.reader(f,delimiter=',')
    for row in reader:
        if row[0] == "bmw":
            nums.append(int(row[1]))

numpy.mean(nums)

在哪里应为row的索引放置正确的值。 如果您想计算所有品牌的均值,则可以使用字典来保存每个品牌的价格数组。

答案 1 :(得分:0)

使用re.split而不是使用csv,它是为此专门构建的,并且处理得很好。

pandas

大众汽车栏的平均值:

import pandas as pd
data = pd.read_csv('my.csv')

如果您要查找特定的df.groupby('brand')['price'].mean()

brand