# 利用pandas库读取文件并使用matplotlib进行可视化

代码如下:(含部分代码)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
import matplotlib.dates as mdate
#读取文件
csv_file = "air_quality.csv"
csv_data = pd.read_csv(csv_file, low_memory = False)#防止弹出警告
csv_df = pd.DataFrame(csv_data)
#查看数据维度
print(csv_df)
print(csv_df.shape)
print('\n')
#查看重复值
print(csv_df.duplicated(),'\n')
#查看缺失值
print(pd.isnull(csv_df),'\n')
#将NAN值换为0 pd.fillna 填补缺失值(df.where()函数可行)
print (csv_df.where(csv_df.notnull(), 0))
#将中位数的值填充
df_mid= (csv_df.loc[:,['O3 Value','NO2 Value','PM10 Value']])
print(df_mid.fillna(value=df_mid.median(axis=1)))
#生成新的文件
df_mid.to_csv('values1')
#计算有效值的和
for i in df_mid.columns:
    print(df_mid[i].sum())
#print(df_mid.info())
#除去含缺失值的行 dropna()函数默认值 axis = 0 ,可以设置为 1
df_new =csv_df.dropna().reset_index(drop=True)
#print(df_new.info())
#开始使用新的DataFrame
#将object转化为datatime
df_new['Generated2'] = pd.to_datetime(df_new['Generated'],format='%d/%m/%Y')#将读取的日期转为datatime格式
#利用标签截取
df1 = (df_new.loc[:,['Generated2','O3 Value','NO2 Value','PM10 Value']])
df_da =  (df_new.loc[:,['Generated2']])
#df1.to_csv('values')
#按时间统计数据,统计O3在不同日期Value 的总值,
df2 =df1.pivot_table(index='Generated2',aggfunc='sum')
print(df2)

fig2 = plt.figure( figsize=(15, 8),dpi=80)
x = np.linspace(0,30,30)
plt.bar(x-0.25,df2['O3 Value'],width=0.25,color='g',label='O3 Value', )
plt.bar(x,df2['NO2 Value'],width=0.25,color='b',label='NO2 Value')
plt.bar(x+0.25,df2['PM10 Value'],width=0.25,color='r',label='PM10 Value')
years = pd.date_range('2018-11-01',periods=30,freq='D')
print(years)
plt.xticks(range(30),years,rotation=90)
plt.legend(loc="upper left")
plt.xlabel('time')
plt.show()
#使用pandas库的画图方法
#df2.plot(kind='bar')
plt.show()

'''
fig1 = plt.figure( figsize=(15, 8),dpi=80)
#使用add_subplot在窗口加子图,其本质就是添加坐标系
ax1 = fig1.add_subplot(1,1,1)
#绘制曲线
ax1.plot(df2.index,df2['O3 Value'],color='g')
ax1.plot(df2.index,df2['NO2 Value'],color='b')
ax1.plot(df2.index,df2['PM10 Value'],color='r')
plt.legend(loc="upper left")
plt.show()
'''
'''
#柱状堆叠图
fig3 = plt.figure(num=1, figsize=(15, 8),dpi=80)
ax3 = fig3.add_subplot(1,1,1)
ax3.bar(df2.index,df2['O3 Value']+df2['NO2 Value']+df2['PM10 Value'], width/4,color='r',label="PM10 Value")
ax3.bar(df2.index,df2['O3 Value']+df2['NO2 Value'], width/4,color='b',label="NO2 Value")
ax3.bar(df2.index,df2['O3 Value'], width/4 ,color='g',label="O3 Value")
plt.legend(loc="upper left")
plt.show()
'''
'''
#折线堆叠图
fig4 = plt.figure(num=1, figsize=(15, 8),dpi=80)
x = np.linspace(0,30,30)
ax4 = fig4.add_subplot(1,1,1)
plt.stackplot(x , df2['O3 Value'],df2['NO2 Value'] ,df2['PM10 Value'],colors=['m','c','r'],labels=['O3 Value','NO2 Value','PM10 Value'], )
years = pd.date_range('2018-11-01',periods=30,freq='D')
plt.xticks(range(30),years,rotation=90)
plt.xlabel('time')
plt.legend(loc="upper left")
plt.show()
'''
···



  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Pandas是Python中一个非常流行的数据处理,可以用来读取和处理Excel文件。可以使用pandas读取Excel文件,并使用matplotlib或seaborn等进行可视化。 以下是一个简单的示例代码,演示如何使用pandas读取Excel文件并绘制柱状图: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Excel文件 df = pd.read_excel('data.xlsx') # 统计每个类别的数量 counts = df['category'].value_counts() # 绘制柱状图 plt.bar(counts.index, counts.values) plt.xlabel('Category') plt.ylabel('Count') plt.show() ``` 在这个例子中,我们首先使用pandas读取名为“data.xlsx”的Excel文件。然后,我们使用value_counts()函数计算每个类别的数量,并将结果存储在counts变量中。最后,我们使用matplotlib绘制柱状图,显示每个类别的数量。 这只是一个简单的示例,你可以使用pandas和其他可视化进行更复杂的数据分析和可视化。 ### 回答2: pandas是Python中常用的数据处理利用pandas读取Excel文件进行可视化可以方便地帮助我们分析数据。 1. 读取Excel文件 首先,我们需要导入pandas,并使用read_excel()函数读取Excel文件。例如,我们可以使用以下代码读取名为example.xlsx的Excel文件: ``` import pandas as pd df = pd.read_excel('example.xlsx') ``` 这样,我们就将Excel文件中的数据读取到了DataFrame对象df中,可以使用df.head()函数查看前5行数据。 2. 数据清洗和准备 在进行可视化之前,我们需要对数据进行清洗和准备,确保数据格式正确、缺失值处理等方面的问题。 例如,我们可以使用fillna()函数对缺失值进行填充,并使用astype()函数将数据类型转换为合适的类型。例如: ``` df = df.fillna(0) df['price'] = df['price'].astype('int') ``` 3. 数据可视化 完成数据清洗后,我们可以使用Python中的各种数据可视化进行展示。 例如,我们可以使用Matplotlib绘制柱状图、折线图、散点图等图表,可以使用Seaborn绘制更加美观的统计图表等。 以下是通过Matplotlib绘制折线图的示例代码: ``` import matplotlib.pyplot as plt plt.plot(df['date'], df['price']) plt.xlabel('Date') plt.ylabel('Price') plt.title('Stock Price Variation') plt.show() ``` 这份代码将根据df中的日期和价格数据绘制折线图,并使用xlabel()、ylabel()和title()函数设置图表中的x轴标签、y轴标签和标题。 通过这种方法,我们可以使用pandas读取Excel文件,并使用Python中的可视化方便地进行数据可视化。 ### 回答3: Pandas是一个开源的Python,用于数据分析和数据处理,也被广泛使用于数据科学领域。其中,Pandas读取Excel文件是其重要的应用之一,Pandas支持多种文件格式的读取和写入,包括CSV、Excel、JSON、SQL、HTML、HDF5等,本文将着重介绍如何使用Pandas读取Excel文件进行可视化展示。 一、Pandas读取Excel文件 Pandas读取Excel文件需要使用Pandas和Openpyxl,如果没有安装,可以使用以下命令进行安装: ```python pip install pandas openpyxl ``` Pandas读取Excel文件的核心函数为read_excel()函数,可以通过以下代码实现读取Excel文件: ```python import pandas as pd # 读取Excel文件 data = pd.read_excel("example.xlsx") # 打印读取的数据 print(data) ``` 其中,example.xlsx为待读取的Excel文件名,data为读取到的数据。如果Excel文件中有多个Sheet页,可以使用Sheetname参数指定读取某一个Sheet页,例如: ```python # 读取Excel文件中的第一个Sheet页 data = pd.read_excel("example.xlsx", sheetname=0) ``` 二、Pandas数据可视化 Pandas也提供了丰富的数据可视化工具,可以使用Matplotlib和Seaborn等进行可视化。以下是Pandas进行数据可视化的示例代码: ```python import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 读取Excel文件 data = pd.read_excel("example.xlsx") # 绘制饼图 data.plot(kind='pie', y='数量', labels=data['名称'], autopct='%1.1f%%') plt.ylabel('') # 绘制柱状图 sns.barplot(x='名称', y='数量', data=data) # 显示图形 plt.show() ``` 其中,data.plot()函数可以绘制数据的饼图,sns.barplot()函数可以绘制数据的柱状图,其他的图形种类可以参考Pandas官方文档。 需要注意的是,当需要集成托尔绘图图形和 Pandas 时,需要导入: `from matplotlib.ticker import FuncFormatter` 三、Pandas读取Excel文件的其他参数 在实际使用中,还可以通过设置参数进行更加详细的数据读取和处理,例如header参数可以控制读取Excel文件的表头,index_col参数可以指定将哪一列作为索引列,例如: ```python # 将Excel文件第一列作为索引列 data = pd.read_excel("example.xlsx", index_col=0) # 读取Excel文件表头行数为2 data = pd.read_excel("example.xlsx", header=2) ``` 另外,还可以使用skiprows、sheetname、usecols等参数实现跳过行、读取指定Sheet页、读取指定列等处理。 以上即是使用Pandas读取Excel文件的介绍及示例,通过Pandas读取Excel文件可以实现快速方便的数据读取和处理,同时还具有数据分析和可视化的丰富功能,是数据科学领域不可或缺的工具之一。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值