Data Preprocessing -- 1.Pandas
Update(2020/06/18 16:08)
编辑说明
Pandas 是Python语言中基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
本篇文章作为Pandas常用数据处理方法的积累,会根据作者的积累不定时更新。
若本篇文章中未查询到您想要用法,请参考API reference : https://pandas.pydata.org/pandas-docs/stable/reference/io.html
1、读与写
此处读写媒介为excel、csv、Sql
#1、excel读写
df = pd.read_excel(r'C:\Users\Administrator\Desktop\aaa.xlsx')
df.to_excel(r'C:\Users\Administrator\Desktop\aaa.xlsx')
#2、csv读写
df = pd.read_csv(r'C:\Users\Administrator\Desktop\aaa.csv')
df.to_csv(r'C:\Users\Administrator\Desktop\aaa.csv',encoding = 'utf_8-sig',index=False)
##excel和python处理的中文格式为utf_8;而csv存储的是utf_8-sig格式,csv存储时需要转换编码
##index = False为存储时不要索引列
#3、sql读写
df = pd.DataFrame(sql_list,columns=['columns1','columns2','columns3'])
##sql_list为数据库中fetall的数据;
##columns为新建的DataFrame的列
##sql方式写入一般采用pymssql执行逐条插入或者拼接后批量插入
2、切片
三种切片方式ix、iloc、loc
#1、loc:基于标签,中括号里面是先行后列,以逗号分割,行和列分别是行标签和列标签
table = df.loc[:,'列名']
#2、iloc:基于整数,中括号里面是先行后列,以逗号分割,根据行数与列数来索引的
table = df.iloc[:,列索引号]#列索引号为数字
#3、ix可以实现iloc和loc
table = df.ix[:,'列名']“”
table = df.ix[:,列索引号]#列索引号为数字
#4、多行切片,采用列表标识多行
table = df.loc[:,['列1','列2','列3']]
3、筛选
将DataFrame中符合某个条件的数据筛选出来创建新的DataFrame
#1、筛选列1中等于'value'的数据
new_df = df[df['列1'] == 'value']
#2、多条件筛选
new_df = df[(df['列1'] > 18) & (df['列22'] == 'float')]
#3、多条件筛选 & 提取特定列数据
new_df = df[(df['列1'] > 18) & (df['列2'] == 'float'),'列1':'列2']
4、数据替换
将DataFrame中某列的某值替换为其他值
#1、切片替换
##把“列1等于value1”时的列2置为“value2”
df.loc[df['列1']=='value1', '列2'] = 'value2'
##条件筛选后替换
df1.loc[df1['列3'] > 18,'列4'] = 'BIG'
#2、replace()函数替换
(1)替换整体数据
df['row'].replace(to_replace=r