Python错误:'list'没有属性'mean'

时间:2018-02-21 01:02:41

标签: python python-3.x pandas

我试图从包含数据的Excel文件中获取百分比列表的平均值。我目前的代码如下:

import numpy as pd
data = pd.DataFrame =({'Percentages': [.20, .10, .05], 'Nationality':['American', 'Mexican', 'Russian'], 
'Gender': ['Male', 'Female'], 'Question': ['They have good looks']})

pref = data[data.Nationality == 'American']
prefPref = pref.pivot_table(data.Percentage.mean(), index=['Question'], column='Gender')

错误来自我尝试从我的['Percentage']列表中获取.mean()的地方。那么,我怎样才能从百分比列表中得到均值?我是否需要为平均值创建变量,如果是,我该如何将其实现到代码中?

2 个答案:

答案 0 :(得分:1)

["Percentage"]是包含单个字符串项"Percentage"的列表。无法从文本列表中计算平均值。

此外,Python的通用列表中不存在方法.mean(),请查看numpy以计算均值和其他数学运算。

例如:

import numpy
numpy.array([4,2,6,5]).mean()

答案 1 :(得分:-1)

以下是pd.pivot_table的重写版本。另请参阅How to pivot a dataframe

import pandas as pd, numpy as np

data = pd.DataFrame({'Percentages': [0.20, 0.10, 0.05],
                     'Nationality': ['American', 'American', 'Russian'], 
                     'Gender': ['Male', 'Female', 'Male'],
                     'Question': ['Q1', 'Q2', 'Q3']})

pref = data[data['Nationality'] == 'American']

prefPref = pref.pivot_table(values='Percentages', index='Question',\
                            columns='Gender', aggfunc=np.mean)

# Gender    Female  Male
# Question              
# Q1           NaN   0.2
# Q2           0.1   NaN