【发布时间】:2020-03-14 20:52:51
【问题描述】:
我有一个数据框,现在只有两列,'AGE' 和 'POPULATION'
我需要找出所有人的平均年龄。
所以我需要将年龄值添加到列表 n 次,其中 n 是给定年份的人口。如果 2 岁儿童的人口为 5,则应将数字 2 添加到列表中 5 次。这两个值都来自 Dataframe,因此我需要遍历它并使用同一行的相应值。
我能够通过以下代码得到正确答案:
l = []
for i in ppl_2014['AGE']:
num = ppl_2014.at['A' + str(i),'POPESTIMATE2014']
age = ppl_2014.at['A' + str(i),'AGE']
l += ([age] * num)
avg = sum(l)/len(l)
print(avg)
如何使用 NumPy 或 Pandas 更有效地执行此操作?即使答案是正确的,代码也需要几分钟才能运行。我假设我需要将其转换为系列或数据框,但我只是不知道。
【问题讨论】:
-
np.average(ppl_2014['AGE'], weights=ppl_2014['POPESTIMATE2014'])
标签: python pandas numpy dataframe