如何使用python在列表中添加值和忽略非值?

2024-04-19 21:43:54 发布

您现在位置: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

我只想求所有值的和,忽略非浮点值,然后求平均值


Tags: ofcsvin程序df列表for错误
1条回答
网友
1楼 · 发布于 2024-04-19 21:43:54

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

除此之外,您可以简单地使用pandas.Series.mean()方法:

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

相关问题 更多 >