作为机器学习中进行数据处理的过程中,数据预处理往往是不可或缺的一个阶段,一般通过numpy与pandas库来对数据进行数据的预处理。本博客旨在对pandas库中的常见操作进行总结,具体涉及到的代码如下:
import pandas as pd
label=[1,0,1,0,1] #一维序列
data=pd.Series(data=label,index=['a','b','c','e','f'],dtype=int,name='label')
print(data)
print(data['a'])
#dataframe输出
#以字典的形式进行构造
frame=pd.DataFrame({'name':['du','zeng','peng'],'age':[25,25,22],'weight':[60.0,80.5,55.8]})
print(frame) #默认行索引从0开始
frame1=pd.DataFrame(frame,columns=['name','age'])
print(frame1)
#DataFrame的增删改查,类似列表的属性,可以进行内容的修改
#增加行
frame1['frinds_num']=[10,12,14]
print(frame1)
#删除行
frame2=frame1.drop(['name','age'],axis=1) #可以删除指定轴上的数据
print(frame2)
#查找数据行
frame1=frame1[frame1['frinds_num']>10]
print(frame1)
#通过lambda表达式添加列
frame1['Age_group']=frame1['age'].apply(lambda x: 0 if x < 20 else 1)
print(frame1)
print(frame1.describe())#通过describe()函数获取各个特征的详细信息
print(frame1.describe(include='O'))
首先对Series数据类型进行引入,Series可以看做是一维的字典结构的一个元素,具体的代码如下:
label=[1,0,1,0,1] #一维列表
data=pd.Series(data=label,index=['a','b','c','e','f'],dtype=int,name='label')
print(data)
print(data['a'])
具体的输出如下,
a 1
b 0
c 1
e 0
f 1
1
Series默认的索引从0开始,这里我们规定索引对象a-f。data['a']的输出为1。
在Series数据中只有一个列的特征,而DataFrame会有多个列的特征,在数据处理中很重要,接下来将一一展示通过DataFrame对象来对数据进行操作处理。具体代码如下:
frame=pd.DataFrame({'name':['du','zeng','peng'],'age':[25,25,22],'weight':[60.0,80.5,55.8]})
print(frame) #默认行索引从0开始
frame1=pd.DataFrame(frame,columns=['name','age'])
print(frame1)
具体输出如下:首先对定义的DataFrame对象进行输出,在选取其中几列特征元素输出。
0 du 25 60.0
1 zeng 25 80.5
2 peng 22 55.8
name age
0 du 25
1 zeng 25
2 peng 22
接下来,对DataFrame对象进行增删改查操作。
#DataFrame的增删改查,类似列表的属性,可以进行内容的修改
#增加行
frame1['frinds_num']=[10,12,14]
print(frame1)
#删除行
frame2=frame1.drop(['name','age'],axis=1) #可以删除指定轴上的数据
print(frame2)
#查找数据行
frame1=frame1[frame1['frinds_num']>10]
print(frame1)
#通过lambda表达式添加列
frame1['Age_group']=frame1['age'].apply(lambda x: 0 if x < 20 else 1)
print(frame1)
具体输出如下:
name age frinds_num
0 du 25 10
1 zeng 25 12
2 peng 22 14
frinds_num
0 10
1 12
2 14
name age frinds_num
1 zeng 25 12
2 peng 22 14
name age frinds_num Age_group
1 zeng 25 12 1
2 peng 22 14 1
最后通过describe()函数显示列特征的一些关键属性
print(frame1.describe())#通过describe()函数获取各个特征的详细信息
print(frame1.describe(include='O'))
具体显示结果如下:
age frinds_num Age_group
count 2.00000 2.000000 2.0
mean 23.50000 13.000000 1.0
std 2.12132 1.414214 0.0
min 22.00000 12.000000 1.0
25% 22.75000 12.500000 1.0
50% 23.50000 13.000000 1.0
75% 24.25000 13.500000 1.0
max 25.00000 14.000000 1.0
name
count 2
unique 2
top peng
freq 1