利用pandas读取Singapore_total.csv文件为Dataframe类型的数据然后利用groupby功能将数据按月分组,利用饼图展示所有年份中每个月的日最高用电负荷总和的数据分布情况
时间: 2024-05-15 22:18:46 浏览: 152
好的,请先确保你已经安装了 pandas 和 matplotlib 库。
以下是代码实现:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('Singapore_total.csv')
# 将日期类型转换为月份
df['Month'] = pd.to_datetime(df['Date/Time']).dt.month
# 按月份分组,并计算每月日最高用电负荷总和
grouped = df.groupby('Month')['Daily Peak Load (MW)'].sum()
# 绘制饼图
labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
plt.pie(grouped, labels=labels, autopct='%1.1f%%')
plt.title('Monthly Distribution of Daily Peak Load (MW)')
plt.show()
```
解释一下代码:
首先,我们使用 `pd.read_csv` 函数读取了 `Singapore_total.csv` 文件,并将其转换为 pandas 的 DataFrame 类型。
然后,我们使用 `pd.to_datetime` 函数将日期时间类型的数据转换为月份,并将其添加为新的一列。
接着,我们使用 `groupby` 函数按月份分组,并使用 `sum` 函数计算每月日最高用电负荷总和。
最后,我们使用 `plt.pie` 函数绘制了饼图,其中 `grouped` 变量存储了每个月的日最高用电负荷总和,`labels` 变量存储了每个月的名称,`autopct` 参数指定了百分比的格式,`plt.title` 函数设置了图表的标题,并使用 `plt.show` 函数显示了图表。
希望这个代码可以满足你的需求!
阅读全文