我正在学习python基础课程,并试图完成我们设定的挑战。我需要在阅读销售数据电子表格后确定每个产品类别的平均销售价格。我可以阅读电子表格,我知道如何分离出类别列使用。groupby。但我不能让它算出平均销售价格,因为它试图在类别列上算,这是一个字符串。我把代码放在下面。任何帮助都会很感激。由于
import pandas as pd
def read_data():
df = pd.read_csv('sales_dataset.csv')
print(df)
return df
read_data()
def average_price():
df = read_data()
average = df.groupby(["Sale Price"]).mean()
print(average)
return average
average_price()
我以为我是在遵循计算电子表格中列出的每个产品类别的平均销售价格的代码。它尝试在类别列上执行此操作,这是一个字符串,而不是sale price列。
欢迎来到Stack Overflow!通常当你提出问题(特别是关于数据分析)时,如果你和我们分享一些数据(csv文件的几行,或者df
中的几行),这将有助于答案得到一个适当的解决方案。
看完你的问题,我可以帮助澄清一些事情。DataFrame.groupby(...)
用于指定分组列-例如,您希望在哪个列上执行计算。在您的情况下,您不希望对您的价格进行分组,您更可能不希望对您的'product category'
列(或DataFrame
中的任何名称)进行分组。
一旦你调用了DataFrame.groupby(['product category'])
,你就可以使用方括号来选择你想要操作的DataFrame
列的一个子集。所以我们可以使用这样的代码:
df.groupby(['product category'])['Sale Price'].mean()
翻译过来就是:
- 根据
'product category'
列对数据框的行进行分组 - 对于每一组,计算平均
'Sale Price'