第一章 数据载入与初步观察

第一节 载入数据:

1.1 导入库 

# 导入相关的库,绘图库有多种,视需而定,且pandas自身有绘图的函数
import numpy as np
import pandas as pd
import matplotlib.plplot as plt 
%matplotlib inline  # 省略plt.show()

1.2 读取数据  

# 根据数据文件的类型,选择相应的函数进行加载
data=pd.read_csv()

注意:

(1) csv文件一般是以逗号分隔,tsv文件是用制表符分隔,用pandas读取时对应不同的加载函数。但两者的差别主要在于分隔符,所以可通过设置sep或delimiter参数,所以pd.read_table()与pd.read_csv()均可加载这两种类型的数据文件

(2) chunksize参数:有时由于数据文件太大,一次性加载会占据过多内存,因此读取时可设置chunksize参数,分块读取。生成的对象是一个迭代器,而不是dataframe类型的数据,通过for循环遍历

(3) 对索引与列名可进行适当的调整

# 设置行索引与列名
#1.读取时通过names参数与index_col参数设置
data=pd.read_csv('filaname.csv',names=['编号','产品名称', '订单数量', '订单金额'],set_index='index1') # sex_index的参数可以是列名,也可以是数值索引(第几列)

# 2.使用rename()函数,columns和index都是字典,键为原来的标签,值为新的标签
data = data.rename(columns = {'订单编号':'编号', '产品':'产品名称', '数量':'订单数量', '金额':'订单金额'}, index = {0:'A', 1:'B', 2:'C', 3:'D', 4:'E', 5:'F'})

#3. 通过index属性与columns属性
data.columns = ['编号', '产品名称', '订单数量', '订单金额']
data.index = ['A', 'B', 'C', 'D', 'E', 'F']

# 4.通过set_index()函数修改行标签
data = pd.read_excel('订单表.xlsx', sheet_name = 3)
data.set_index('订单编号')

1.3 观察数据

加载好数据之后,可通过head函数或tail函数,看数据的某些行

df.head() # 默认前5行,可指定行数
df.tail() # 默认后5行,可指定行数

需要注意数据中是否含有缺失值、重复值,也要注意数据的分布情况。如果想要快速了解数据集的信息,可通过pd.info()或pd.describe()函数

data.info() # 返回各列索引、列名、非空值的个数、数据类型
data.describe() # 返回一些描述统计的指标,包含数据个数、均值、标准差、最小值、1/4的百分位数、中位数、3/4的百分位数、最大值。可指定某列

 

第二节 探索性数据分析

2.1筛选数据

有些数据是分析中不需要的,所以要选出待分析的相应数据

# 选择行数据
# 1.loc与iloc
data.loc['indexname1'] # 输入行标签
data.iloc[2] # 输入索引
# 2.选择多行
data.loc[['indexname1','indexname2']] # 输入行标签
data.iloc[[2,3]] # 输入索引
# 3.条件判断,以该判断结果为索引,进而选择数据

# 选择列数据
#1.指定列标签
data['columnsname1']
#2.属性
data.columnsname1
#3.选择多列,同选择多行类似

# 同时选择。loc与iloc均可,同时给出相应行列

2.2排序

# 依据某一或某些列的数值进行排序,by后可接列名或列表,ascending指定排序方式
dataframe.sort_values(by='columnnames1',ascending=True)

#y依据索引进行排序,axis指定轴,ascending指定排序方式
dataframe.sort_index(axis=0,ascending=True)

2.3 dataframe运算

# 两数据框进行加法运算,相同索引、列进行运算,其他地方用None填充
df1=pd.Dataframe(np.random.randint(1,10,(4,2),columns=['a','b'])
df2=pd.Dataframe(np.random.randint(5,15,(3,3),columns=['a','b','c'])
# 对数据框进行统计运算:求和、求均值、求极值
df.sum() df.mean(). df.min() df.max() #整体
df['columnname'].sum() df['columnname'].mean() # 某列
df['columnname'].min() df['columnname'].max()

 

posted on 2021-12-14 18:51  宝joM  阅读(122)  评论(0)    收藏  举报