已知济南市房产交易数据已爬取并存放以小区名命名的csv(文件名分别为tianqiao.xml,shizhong.xml,lixia.xml,huaiyin.xml)文件中,数据格式为['小区名', '面积', '总价', '单价', '户型', '成交日期'],且均以字符串类型存放。编写一个程序,使用Python语言对济南房产交易数据进行可视化分析,要求: 1.求取各区成交易额、各区成交面积、各区最高单价、各区平均单价、各区最低单价、历下区2021年月均价。 2.画出济南市各区县成交额占比的饼形图。 3.画出济南市各区县成交均价的直方图。 4.画出济南市历下区2021年各月份成交均价的波动曲线。
时间: 2023-06-04 10:07:12 浏览: 94
好的,我会根据您的要求进行回答,以下是对每个问题的回答。
1. 求取各区成交额、各区成交面积、各区最高单价、各区平均单价、各区最低单价、历下区2021年月均价。
您可以使用Python中的pandas和matplotlib库来进行可视化分析。首先,可以将四个csv文件读取为四个dataframe,并将它们合并为一个dataframe,做法如下:
```
import pandas as pd
file_names = ['tianqiao.xml', 'shizhong.xml', 'lixia.xml', 'huaiyin.xml']
df_list = []
for file_name in file_names:
df = pd.read_csv(file_name)
df_list.append(df)
merged_df = pd.concat(df_list, ignore_index=True)
```
接下来,可以使用pandas中的groupby函数来对数据进行分组计算。以济南市的各区为例,可以通过下面的代码求取各区成交额:
```
total_prices = merged_df.groupby('小区名')['总价'].sum()
```
其他指标的求取方式类似,例如可以用merged_df.groupby('小区名')['面积'].sum()来求取各区成交面积。
历下区2021年月均价可以通过下面的代码求取:
```
lixa_df = pd.read_csv('lixia.xml')
lixa_2021_df = lixa_df[lixa_df['成交日期'].str.startswith('2021')]
lixa_2021_df['成交日期'] = pd.to_datetime(lixa_2021_df['成交日期'])
lixa_monthly_prices = lixa_2021_df.groupby(lixa_2021_df['成交日期'].dt.month)['单价'].mean()
```
2. 画出济南市各区县成交额占比的饼形图。
可以使用matplotlib库中的pie函数来画出饼形图。代码如下:
```
import matplotlib.pyplot as plt
plt.pie(total_prices, labels=total_prices.index, autopct='%1.1f%%')
plt.title('济南市各区县成交额占比')
plt.show()
```
3. 画出济南市各区县成交均价的直方图。
可以使用matplotlib库中的hist函数来画出直方图。代码如下:
```
plt.hist(merged_df['单价'], bins=30)
plt.title('济南市各区县成交均价直方图')
plt.xlabel('单价')
plt.ylabel('频数')
plt.show()
```
4. 画出济南市历下区2021年各月份成交均价的波动曲线。
可以使用matplotlib库中的plot函数来画出波动曲线。代码如下:
```
plt.plot(lixa_monthly_prices)
plt.title('济南市历下区2021年各月份成交均价波动曲线')
plt.xlabel('月份')
plt.ylabel('成交均价')
plt.show()
```
阅读全文