import numpy as np import pandas as pd import matplotlib.pyplot as mp df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(1,)) mylist1=df.values.tolist() room=[] for i in mylist1: room.append(i[0]) df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(2,)) mylist1=df.values.tolist() tomp=[] for i in mylist1: tomp.append(i[0]) room_tomp=zip(room,tomp) avge=[] ls=[] for i in range(1,185): ls.clear() for k,v in room_tomp: if k==i: ls.append(v) s=sum(ls) avg=s/2928 avge.append(avg) print(avge)这个代码为什么avge的输出出了第一个数据是正常值,其他的都为0?
时间: 2024-02-16 10:02:16 浏览: 25
根据你的代码,avge中第一个值是通过对编号为1的房间温度求平均得到的,而其他值都是通过对room_tomp中的值进行遍历得到的,但是room_tomp只在第一次遍历时有效,因为zip函数返回的是一个迭代器,遍历一次后就会被清空,所以在第二次遍历时room_tomp已经为空,导致ls中没有任何元素,最终得到的平均温度为0。为了解决这个问题,你可以在每次遍历时重新生成room_tomp,或者在第一次生成room_tomp后将其转换为列表,避免其被清空的问题。
相关问题
import numpy as np import pandas as pd import matplotlib.pyplot as plt
这三个库都是Python中常用的数据分析和可视化库。其中,NumPy是Python中用于科学计算的基础库,提供了高性能的多维数组和矩阵计算功能。Pandas是基于NumPy的一个数据处理库,提供了高效的数据结构和数据分析工具。Matplotlib是Python中最流行的数据可视化库之一,提供了各种绘图工具和图表类型,可以用于生成各种静态和动态的图表。
以下是一个简单的例子,展示如何使用这三个库绘制一个柱状图:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 创建数据
bar_positions = [1, 2, 3, 4]
bar_heights = [1, 2, 3, 4]
# 绘制柱状图
fig, ax = plt.subplots()
ax.bar(np.arange(len(bar_positions)), bar_heights)
# 设置x轴标签
ax.set_xticks(np.arange(len(bar_positions)))
ax.set_xticklabels(bar_positions)
# 设置y轴标签
ax.set_ylabel('Bar Heights')
# 设置图表标题
ax.set_title('A Simple Bar Chart')
# 显示图表
plt.show()
```
对下列代码进行注释:import numpy as np import pandas as pd import matplotlib.pyplot as plt
这段代码是用来导入三个Python库:NumPy、Pandas和Matplotlib.pyplot。下面是每个库的作用:
- NumPy:提供了Python的数值计算功能,尤其是多维数组对象和矩阵计算支持。
- Pandas:提供了用于数据操作和分析的工具,尤其是数据结构和数据分析函数。
- Matplotlib.pyplot:提供了用于绘图的函数和方法,使得用户可以创建各种形式的图表、图形、动画等。
在代码中,它们被分别命名为“np”、“pd”和“plt”,以后在代码中可以使用这些命名来调用每个库的相关函数和方法。