数据处理:(主要使用的模块为:pandas、numpy)
1.数据的存在形式:文件和数据库
文件的存在形式分为:Csv(用,分割列的文本),Excel,Txt
(1)read_table导入文本文件
read_table(file,names=[列名],sep="",encoding)
names列名,默认为文件的第一行作为列名
sep分隔符,默认为空,表示默认导入为一列
encoding文件编码,导入中文时设置utf-8
(2)read_excel导入Excel文件
read_excel(file,sheetname,header)
sheetname列名
(3)read_csv导入csv文件
read_csv(file,encoding)
2.数据的导出
(1)to_csv(filepath,sep,index = True,header = True)
3.缺失数据的处理
(1)数据补齐
(2)删除对应的缺失行
(3)不处理
1.dropna函数:去除数据结构中值为空的数据
使用方法:df = read_csv()
new_df = df.dropna()
2.strip函数:清除字符型数据左右的空格
使用方法:new_name = df["name"].str.strip()
3.字段抽取:根据已知列数据的开始结束位置,抽取新的列
slice函数:字段截取函数slice(start,end)
4.split函数:按固定的字符,拆分已有的字符串
split(sep,n,expand = False)
sep:用于分割的字符串
n: 分割为多少列
expand:是否展开为数据框,默认为False
如果expand为True,返回DataFrame,如果为False,返回Series
5.记录抽取
1.比较运算:df[df.comments > 10000]
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.contains(‘台电‘,na = False)]
5.逻辑运算:与或非&,|,not
4.随机抽样
随机抽样函数:numpy.random.randint(start,end,num)
5.记录合并:concat([dataFrame1,dataFrame2,....]) -->之前的爬取nba球员信息就可以这样合并
将两个数据结构相同的数据框,合并成一个数据框
dataFrame1,dataFrame2,为数据框
返回值:数据框
6.字段合并:将同一个数据框中的不同列,进行合并,形成新的列
直接使用"+":
条件:列数得一样,得是字符型的数据
返回序列
7.字段匹配:不同结构的数据框,按照一定的条件进行合并
merge(x,y,left_on,right_on)
x:第一个数据框
y:第二个数据框
left_on:第一个数据框用于匹配的列
right_on:第二个数据框用于匹配的列
返回值:DataFrame
8.简单的计算:
9.数据标准化:数据按比例缩放,使之落到特定的区间
x* = x - min/ max - min
10.数据分组:按照一定的数值指标,把数据分析对象划分为不同的区间来进行研究
cut(series,bins,right = True,labels = Null)
series:需要分组的数据
bins:分组的划分数组 -->例如 bins = [min(df.cost)-1,20,40,60,max(df.cost)+1]
right:分组的时候,右边是否闭合(默认闭合)
labels:分组的自定义标签 --> 例如 labels = ["20以下","20到40"....]
11.日期转换:date = to_datetime(dateString,format)
format = "%y/%m/%d" %H小时,%M分钟,%S秒
12.日期格式化:日期型的数据,按照给定的格式,转为字符型的数据
apply(lambda x:处理逻辑)
datetime.strftime(x,format)
13.日期抽取:datetime列.dt.property
df_dt = to_datetime(df.time,format= "%y/%m/%d")
df_dt.dt.year显示年份
df_dt.dt.month显示月份
原文:https://www.cnblogs.com/FlowerNotGiveYou/p/11639145.html