2024-06-12 00:53:57 发布
网友
我有一个分为10个区域的城市的人口数据。给出了人口增长率,我想计算未来十年每个区域的人口,并在单独的列中添加每年的人口。我可以追加一列,但在此之后,无法使用最新追加的列追加下一列。我可以一个接一个地追加列,这不是一个好方法
data['zone_pop'] = data['zone_pop'].apply(lambda zone_pop: population(zone_pop))
请帮我做这个
尝试使用concat函数(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.concat.html)
concat
在for循环中,应该有如下内容:
new_data = pandas.DataFrame(population(data[label]), columns=[label_incr]) data = pandas.concat([data, new_data], axis=1)
其中label和label_incr指用于获取当年数据和新年计算的str变量
label
label_incr
编辑(详细语法)
我想您已经有了一个数据帧data,其中包含一列“population\u zone”,每个区域有10个索引。和变化率r
data
r
上面的代码应该可以工作(至少,我在伪造的本地数据上进行了测试)
current_label = 'population_zone' for i in range(1, 11): new_label = 'population_zone_year' + str(i) new_data = pd.DataFrame((data[current_label] * (1+r/100.)**i).values, columns=[new_label]) data = pd.concat([data, new_data], axis=1) current_label = new_label
如果它不起作用,我可能误解了数据的存储方式
尝试使用
concat
函数(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.concat.html)在for循环中,应该有如下内容:
其中
label
和label_incr
指用于获取当年数据和新年计算的str变量编辑(详细语法)
我想您已经有了一个数据帧
data
,其中包含一列“population\u zone”,每个区域有10个索引。和变化率r
上面的代码应该可以工作(至少,我在伪造的本地数据上进行了测试)
如果它不起作用,我可能误解了数据的存储方式
相关问题 更多 >
编程相关推荐