python机器学习入门之pandas的使用(超详细,必看)

pandas是基于numpy的一种工具 同样用于数据分析

pandas主要处理以下三种数据结构

1:series 一维数组  接近python中的list

2:DataFrame 二维数据结构 其可以理解为series的容器 其内部的每项元素可以看成一个series 在机器学习中经常用到

3:panel 三维数组 可以理解为DataFrame的容器

1:创建一个series对象

import pandas as pd
s=pd.Series([1,3,5,6,8,9])
print(s)

可以通过赋值操作直接修改Series对象成员的值

s[1]=5

根据条件表达式筛选数据

s=pd.Series([1,3,5,6])
b=pd.Series([4,5,6,6])
print(s[s>2])

通过drop函数可以删除对象成员

2:DateFrame是一个表格型的数据结构 包括行索引和列索引

import pandas as pd
dict1={'col1':[2,4,5,3],'col2':['a','b','c','d']}
df=pd.DataFrame(dict1)
print(df)

访问DataFrame有多种方法 可以通过下标和索引等等

import pandas as pd
ser=pd.Series(np.arange(4),index=['a','b','c','d'])
data=pd.DataFrame(np.arange(16).reshape(4,4),index=['AJ','BJ','CJ','DJ'],columns=['q','r','s','t'])
print("ser['c]:",ser['c'])
print("ser 2:",ser[2])
print("date q:",data['q'])
print("data q t:",data[['q','t']])

loc方法则是通过索引名抽取数据 iloc则是通过下标值抽取数据

3:数据对齐

pandas有个很好的功能是对齐不同索引的数据 如两个数据对象相加 如果索引不同则结果的索引是这两个索引的并集

3.2:缺失数据的处理

NA值会带入后续的操作导致出错 所以dropna方法可以预先过滤缺失数据

会默认丢失所以含有缺失值的行 如果想对列进行过滤则把axis=1即可

参数how可以根据行或者列中的NA数量来决定是否删除行或列 常用的有all或者any

from numpy import nan as NA
data=pd.Series([1,NA,3.5,NA,7])
data.dropna()

3.3:notnull函数可以判断空值 下面的代码可以过滤空值

s1=pd.Series(['one','two','thress',NA,None])
print(s1[s1.notnull()])

3.4:填充缺失数据 如果不想删除有缺失值的行和列 可以用fillna方法填充数据

s1=pd.Series(['one','two','thress',NA,None])
print(s1[s1.notnull()])
print(s1.fillna('ljl'))

你可能感兴趣的:(机器学习,python,pandas,机器学习)