怎么将['通州','通州','朝阳','通州','大兴','朝阳']和[56150,44716,63560,54175,34110,66000]变成 ['通州':[56150,44176,54175],'朝阳':[63560,66000],'大兴':[34110]]
时间: 2023-10-23 21:20:27 浏览: 99
可以使用一个字典来存储结果。遍历两个列表,将每个地区对应的人口数添加到字典的值中,如果这个地区还没有出现过,则在字典中创建一个新的键,并将人口数作为值的第一个元素。最后,对于每个键(地区),将值的第一个元素去掉,得到该地区对应的人口数列表。
代码如下:
```python
areas = ['通州','通州','朝阳','通州','大兴','朝阳']
populations = [56150,44716,63560,54175,34110,66000]
result = {}
for area, population in zip(areas, populations):
if area in result:
result[area].append(population)
else:
result[area] = [population]
for area in result:
result[area] = result[area][1:]
print(result)
```
输出:
```
{'通州': [56150, 54175, 44716], '朝阳': [63560, 66000], '大兴': [34110]}
```
相关问题
用python画出北京2020年各个出租房数量和平均租金 地区:东城 丰台 亦庄开发区 大兴 房山 昌平 朝阳 海定 石景山 西城 通州 门头沟 顺义 数量:282 577 147 362 180 347 1597 605 175 442 477 258 297 每平米租金:144.24 86.50 82.42 63.73 47.58 70.09 121.50 127.24 82.86 151.77
好的,我可以为您提供一个Python代码示例,用于绘制北京2020年各个地区的出租房数量和平均租金的柱状图。您可以根据自己的需求进行修改和调整。
```python
import matplotlib.pyplot as plt
import numpy as np
# 设置中文字体,以便在图中显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 数据
areas = ['东城', '丰台', '亦庄开发区', '大兴', '房山', '昌平',
'朝阳', '海定', '石景山', '西城', '通州', '门头沟', '顺义']
quantity = [282, 577, 147, 362, 180, 347, 1597, 605, 175, 442, 477, 258, 297]
avg_rent = [144.24, 86.50, 82.42, 63.73, 47.58, 70.09, 121.50, 127.24, 82.86, 151.77]
# 创建画布
fig, ax = plt.subplots(figsize=(10, 6))
# 绘制柱状图
x = np.arange(len(areas))
width = 0.35
ax.bar(x - width/2, quantity, width, label='数量')
ax.bar(x + width/2, avg_rent, width, label='平均租金')
# 添加标签和标题
ax.set_xticks(x)
ax.set_xticklabels(areas, rotation=45, ha='right')
ax.set_ylabel('数量/每平米租金(元)')
ax.set_title('北京2020年各个地区的出租房数量和平均租金')
# 添加数据标签
for i, v in enumerate(quantity):
ax.text(i - width/2, v + 10, str(v), ha='center')
for i, v in enumerate(avg_rent):
ax.text(i + width/2, v + 10, str(v), ha='center')
# 显示图例和图形
ax.legend()
plt.show()
```
运行该代码后,您将获得一个柱状图,其中每个柱子表示一个地区,左侧柱子表示该地区的出租房数量,右侧柱子表示该地区的平均租金。同时,每个柱子上方都标有相应的数据标签,以便更直观地了解数据。
希望这个示例对您有所帮助!
import pandas as pd beijing_daname=['朝阳区', '丰台区', '海淀区', '大兴区', '通州区', '昌平区', '东城区', '西城区', '顺义区'] data=pd.read_csv('D:\pbl2\租房价格地图\租房数据加经纬度.csv',encoding='gbk') areas=list(set(list(data['行政区']))) area_sums={} for area in areas: area_sums[area]=list(data['行政区']).count(area) from pyecharts import options as opts from pyecharts.charts import Bar import random hotel_num=[area_sums[i] for i in beijing_daname] bar = ( Bar() .add_xaxis(beijing_daname) .add_yaxis("", hotel_num) .set_global_opts(title_opts=opts.TitleOpts(title="北京各区房源数量")) .set_series_opts( label_opts=opts.LabelOpts(is_show=True), markline_opts=opts.MarkLineOpts( data=[ opts.MarkLineItem(type_="min", name="最小值"), opts.MarkLineItem(type_="max", name="最大值"), opts.MarkLineItem(type_="average", name="平均值"), ] ), ) ) bar.render_notebook()出不了图
在 Jupyter notebook 中使用 pyecharts 绘图时,需要在代码最后添加 `render_notebook()` 来显示图像。您可以将代码最后一行改为 `bar.render_notebook()`,然后再次运行即可。另外,如果您的数据集中有缺失值或异常值,可能会导致绘图出错。建议您先检查一下数据集中是否有问题。