用python画出excel表格最后30行的第五列到第四十四列每一列“随着行数递增”信息熵值的变化曲线
时间: 2023-06-20 08:04:42 浏览: 130
对Python中DataFrame选择某列值为XX的行实例详解
首先,我们需要安装以下库:
- pandas:用于读取和处理 Excel 表格数据
- matplotlib:用于画图
在安装完库之后,我们可以按照以下步骤进行操作:
1. 读取 Excel 表格数据
```python
import pandas as pd
# 读取 Excel 表格数据
df = pd.read_excel("example.xlsx")
```
这里我们假设 Excel 表格的文件名为 "example.xlsx"。
2. 计算信息熵值
```python
import math
# 定义计算信息熵值的函数
def entropy(values):
total = sum(values)
entropy = 0
for value in values:
if value == 0:
continue
probability = value / total
entropy -= probability * math.log2(probability)
return entropy
# 计算信息熵值
entropies = []
for i in range(len(df.index) - 30, len(df.index)):
row = df.iloc[i, 4:44]
values = row.tolist()
entropies.append(entropy(values))
```
这里我们定义了一个计算信息熵值的函数 `entropy`,然后使用循环计算最后 30 行的信息熵值,并将结果保存在列表 `entropies` 中。
3. 画图
```python
import matplotlib.pyplot as plt
# 画图
plt.plot(entropies)
plt.xlabel("Row")
plt.ylabel("Entropy")
plt.show()
```
最后,我们使用 matplotlib 库画出信息熵值随着行数递增的变化曲线。
完整代码如下:
```python
import pandas as pd
import math
import matplotlib.pyplot as plt
# 读取 Excel 表格数据
df = pd.read_excel("example.xlsx")
# 定义计算信息熵值的函数
def entropy(values):
total = sum(values)
entropy = 0
for value in values:
if value == 0:
continue
probability = value / total
entropy -= probability * math.log2(probability)
return entropy
# 计算信息熵值
entropies = []
for i in range(len(df.index) - 30, len(df.index)):
row = df.iloc[i, 4:44]
values = row.tolist()
entropies.append(entropy(values))
# 画图
plt.plot(entropies)
plt.xlabel("Row")
plt.ylabel("Entropy")
plt.show()
```
阅读全文