如何使用python添加值并忽略列表中的非值?

时间:2015-11-28 19:58:04

标签: python

我试图找到列表中所有数字的平均值,一个问题是它一直给我一个错误,因为我可能认为它不允许程序添加非整数值。

df = pd.DataFrame.from_csv('train.csv')
result = df[(df.Sex=='female') & (df.Pclass==3)]
list_of_ages = []
list_of_ages = '\n'.join(str(x) for x in result.Age)

for v in list_of_ages:
    average_value = sum(v) / len(v)


print(list_of_ages)

当我打印列表的所有值时,它显示了这一点。

26.0
27.0
4.0
14.0
31.0
nan
15.0
8.0
38.0
nan
nan
18.0
14.0
40.0
19.0
nan
18.0
17.0
16.0
30.0
nan
33.0
28.0
21.0
nan
14.5
20.0
17.0
2.0
nan
47.0
nan
22.0
24.0
9.0
16.0
45.0
1.0
nan
4.0
nan
19.0
nan
2.0
16.0
27.0
nan
5.0
nan
nan
nan
25.0
29.0
41.0
29.0
nan
nan
45.0
35.0
22.0
24.0
nan
26.0
31.0
nan
nan
nan
nan
45.0
nan
nan
3.0
22.0
1.0
24.0
31.0
21.0
20.0
nan
nan
10.0
28.0
nan
21.0
5.0
0.75
22.0
2.0
63.0
nan
21.0
nan
37.0
nan
30.0
9.0
11.0
22.0
36.0
nan
29.0
nan
nan
nan
39.0
nan
26.0
9.0
41.0
2.0
0.75
23.0
nan
18.0
32.0
18.0
43.0
nan
4.0
nan
18.0
nan
25.0
48.0
30.5
5.0
13.0
18.0
nan
31.0
30.0
18.0
6.0
23.0
27.0
15.0
9.0
18.0
24.0
nan
15.0
22.0
39.0
nan

我只想对所有值求和,忽略非浮点值并找到均值。

谢谢

1 个答案:

答案 0 :(得分:0)

您的代码存在多个问题,其中之一是list_of_ages实际上不是列表,而是字符串。

暂且不说,您只需使用pandas.Series.mean()方法:

result = df[(df.Sex=='female') & (df.Pclass==3)]
mean_age = result.Age.mean()