我对 Python 比较陌生,无法找到问题的答案。
假设我已将 DataFrame 保存到变量 movie 中。数据框看起来有点像这样:
Genre1 Genre2 Genre3 sales
Fantasy Drama Romance 5
Action Fantasy Comedy 3
Comedy Drama ScienceFiction 4
Drama Romance Action 8
我想要做的是获取出现在 Genre1、Genre2 或 Genre3 任何列中的每个独特类型的平均销售额。 我尝试了一些不同的事情。我现在拥有的是:
for x in pd.unique(movies[['Genre1','Genre2','Genre3']].values.ravel()):
mean_genre = np.mean(movies['sales'])
print(x, mean_genre)
我得到的结果是:
Fantasy 5.0
Drama 5.0
Romance 5.0
Action 5.0
Comedy 5.0
ScienceFiction 5.0
因此,它确实为我提供了三列中的独特流派,但它计算了整个列销售额的平均值。如何计算出现在 Genre1、Genre2 和 Genre3 三列中的每个独特类型的平均销售额?例如对于“幻想”类型,它应该使用第 1 行和第 2 行来计算平均销售额。
最佳答案
这是一个更短的版本:
allGenre=pd.unique(movies[['Genre1','Genre2','Genre3']].values.ravel())
for genre in allGenre:
print("%s : %f") % (genre,movies[movies.isin([genre]).any(1)].sales.mean())
关于python - np.mean 对于跨多列具有特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886918/