Python数据分析之第二章

1、数据处理

1.1  数据导入

(1)数据的存在形式:

填写图片摘要(选填) 

(2)导入CSV文件:

使用read_csv函数导入CSV文件;

read_csv函数语法:read_csv(file, encoding);

示例:

from pandas import read_csv;

df=read_csv('C://Users//zxysnowy//Desktop//ll.csv','utf-8')

(3)文本编辑软件notepad++:

扫描二维码关注公众号,回复: 2358622 查看本文章

https://notepad-plus-plus.org/download/v6.8.3html;可以修改文本的编码

(4)导入文本文件(比csv文件更加自由)

使用read_table函数导入普通文本文件;

read_table函数语法:read_table(file,names=[列名1,列名2,...],sep="",encoding,...);

file:文本路径;

names:列名,默认为文件的第一行作为列名;

sep:分隔符,默认为空,表示导入为第一列;

encoding:设置文件编码,在导入中文的时候需要设置UTF-8.

from pandas import read_table;

ddf=read_table('C://Users//zxysnowy//Desktop//ww.txt',names=

['age','name'],sep=',',encoding='utf-8')

(5)导入excel文件

使用read_excel函数导入Excel文件;

read_excel函数的语法:read_excel(filename,sheetname,header)

sheetname:sheet的名字;

header:列名,默认为文件中的第一行作为列名。

from pandas import read_excel;

d1f=read_excel('C://Users//zxysnowy//Desktop//ww.xls',sheetname='dd')

1.2 数据导出

(1)导出文本文件

to_csv函数语法:

to_csv(filePath,sep=",",index=TRUE,header=TRUE)

参数:

filePath:导出的文件路径

sep:分隔符,默认为逗号(“,”),也就是以逗号为分隔符;

index:是否导出行序号,默认为TRUE,也就是导出行序号;

header:是否导出列名,默认为TRUE,也就是导出列名。

示例:

d1f.to_csv('C://Users//zxysnowy//Desktop//ss.csv',index=False)

1.3 重复值的处理(重复记录)

把数据结构中,行相同的数据只保留一行;

函数语法:drop_duplicates();

1.4 缺失值处理

(1)缺失值的产生

       有些信息暂时无法获取;

       有些信息被遗漏或者错误处理了。

(2)缺失值的处理方式

数据补齐(平均值补齐等方式);

删除对应缺失行(减少缺失值堆对数据整体的影响);

不处理(单身人士)。

(3)缺失值处理

dropna函数作用:

去除数据结构中值为空的数据

dropna函数语法:dropna()

(4)空格值处理

strip函数作用:清除字符型数据左右的空格;

strip函数语法:strip()。

示例:d1f['name'].str.strip()  #str为strip的属性

1.5 字段的抽取

字段抽取,是根据已知列数据的开始和结束位置,抽取出新的额列。

字段截取函数:slice(start,stop)

参数说明:start为开始位置;# >=

    stop为结束位置。# <</font>

示例: 138   | 0013 | 8000

          运营商|  地区 |  号码

示例:

from pandas import read_csv;

df=read_csv('C://Users//zxysnowy//Desktop//ss.csv',encoding='utf-8')

df['电话']=df['电话'].astype(str) #转成字符串

#运营商

yy=df['电话'].str.slice(0,3);

#地区

dq=df['电话'].str.slice(3,7);

#号码段

hmd=df['电话'].str.slice(7,11);

1.6 字段的拆分

字段拆分,是指按照固定的字符,拆分已有字符串;

字符分割函数:split(sep, n, expand=False)

参数说明:

sep:用于分割的字符串;

n:分割为多少列;

expand:是否展开数据框,默认为False.

返回值:

如果expand为True,则返回DataFrame;

如果expand为False,则返回Series.

Apple  Ipad    mini2

品牌   产品名

ddf=df['tel'].str.split(' ',1,True)

1.7 记录抽取

记录抽取,是指根据一定的条件,对数据进行抽取;

记录抽取函数:dataframe[condition];

参数说明:condition 过滤的条件

返回值:Dataframe; 

常用的条件类型:

(1)比较运算

大于(>),小于(<</font>),大于等于(>=),小于等于(<=),不等于(!=)

例如:df[df.comments > 1000];

(2)范围运算

between(left,right)

例如:df[df.comments.between(100,1000)]; #左右都包含=

(3)空值匹配

pandas.isnull(column)

例如:df[pandas.isnull(df.title)]

(4)字符匹配

str.contains(patten,na=False)

例如:df[df.title.str.contains('台电',na=False)]

(5)逻辑运算

与(&),或(|),取反(not)

例如:df[(df.comments>=1000)&(df.comments<=10000)]

与上面的(df[df.comments.between(100,1000)];)等价

df[pandas.isnull(df.title)]#将标题为null的过滤

1.8 随机抽样

随机抽样,是指随机从数据中,按照一定的行或者比例抽取数据;

随机抽样函数:numpy.random.randint(start,end,num);

参数说明:start 范围的开始值 #一般为0

                  end  范围的结束值 #一般为长度

                  number 抽样个数

返回值:行数的索引值序列

1.9 记录合并

记录合并,是指将两个结构相同的数据框,合并成一个数据框;

记录合并函数:concat([dataFrame1,dataFrame2,...])

返回值:DataFrame

示例:df=pandas.concat([df1,df2,df3])

2.0 字段合并

字段合并,是指将同一个框中的不同列,进行合并,形成新的列。

字符合并方法:x=x1+x2+...

参数说明:x1 数据列1

                  x2 数据列2

                  ...  任意多个数据列

返回值:Series 合并后的序列

注意:如果是逻辑型或者数值型需要转换成字符型;

2.1 字段匹配

字段匹配,是指不同结构的数据框,按照一定的条件进行合并。

字段匹配函数:merge(x, y, left_on, right_on)

参数说明:x   第一个数据框

                  y   第二个数据框

                  left_on    第一个数据框用于匹配的列  #id

                  right_on  第二个数据框用于匹配的列   #id

返回值:DataFrame

2、简单计算

简单计算,就是通过对字段进行加、减、乘、除等四则运算,计算出来需要的字段。

result= df.price*df.num;

df['sum']=result; #在表后面加上一列

3、数据标准化

数据标准化,是指将数据按照比例缩放,使落入到特定区间,一般我们使用0-1标准化;

x*=(x-min)/(max-min);

4、数据分组

数据分组,根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同区间部分来研究,以揭示其内在的联系和规律性;

填写图片摘要(选填)

cut函数:cut(series, bins, right=True, labels=NULL)

参数:

series:需要分组的数据;

bins:分组的划分数组;

right:分组的时候,右边是否封闭;

labels:分组的自定义标签,可以不自定义。

5、日期转换

日期转换,是指将字符型的日期格式的数据,转换成为日期型数据的过程;

日期转换函数:

date=to_datetime(dateString, format);

填写图片摘要(选填) 

6、日期格式化

日期格式化:是指将日期型的数据,按照给定的格式,转为字符型的数据;

日期格式化函数:

apply(lambda x:处理逻辑)

datetime.strftime(x,format)

填写图片摘要(选填)

7、日期抽取,是指从日期格式里面,抽取出需要的部分属性

抽取语法:datetime列.dt.property

填写图片摘要(选填) 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/u013004700/article/details/81093798