Python pandas外部数据导入与常用处理方法详解
本文详细介绍Python中pandas库如何高效导入Excel、CSV及SQL数据库文件,涵盖read_excel、read_csv及read_sql等核心函数的参数配置。同时系统讲解shape、info、astype、isnull、dropna、fillna、drop_duplicates等常用数据清洗与处理方法,帮助开发者快速掌握数据预处理技巧。
pandas外部数据导入概述
外部数据导入
Excel文件导入与配置
导入excel文件
在pandas中,导入Excel文件主要依赖read_excel()函数:
import pandas as pd
excel_file1 = pd.read_excel('data/测试.xlsx',encoding='utf-8')
姓名 年龄 工作 工资 0 张三 25 学生 200 1 李四 24 工人 3000 2 王伟 28 NaN 5000 3 王二毛 22 自由职业 6000
该函数的第一个参数为文件路径,支持绝对路径与相对路径两种形式。若文件名包含中文字符,需显式指定encoding属性为'utf-8'。此外,可通过sheet_name参数指定具体的Sheet名称,或直接传入从0开始的整数索引以选择特定的工作表。
excel_file1 = pd.read_excel('data/test.xlsx',sheet_name = 0)
Excel索引设置技巧
指定索引
默认情况下,列索引从0开始计数。可通过index_col参数自定义索引列,利用header参数设置行索引所在的行数。
excel_file1 = pd.read_excel('data/测试.xlsx',encoding='utf-8',index_col=0)
年龄 工作 年资 姓名 张三 25 学生 200 李四 24 工人 3000 王伟 28 NaN 5000 王二毛 22 自由职业 6000
excel_file1 = pd.read_excel('data/测试.xlsx',encoding='utf-8',header=1)
张三 25 学生 200 0 李四 24 工人 3000 1 王伟 28 NaN 5000 2 王二毛 22 自由职业 6000
指定导入列
指定索引列
当本地文件包含过多列时,可通过usecols参数指定仅导入部分列。该参数支持传入单个列名或列表形式,以明确指定需要导入的列集合。
excel_file1 = pd.read_excel('data/测试.xlsx',encoding='utf-8',usecols=[0,2])
姓名 工作 0 张三 学生 1 李四 工人 2 王伟 NaN 3 王二毛 自由职业
pandas常用数据处理方法
常用方法
- shape()方法用于获取Excel文件的行数和列数,返回结果为元组形式;
- info()方法用于获取各列的数据类型信息;
- astype()方法可用于转换列内的数据类型,括号内需指定目标类型;例如df[列2].astype('float64');可通过df['列'].dtype查看当前列的数据类型。
- isnull()方法用于判断哪些值为缺失值;
- dropna()方法用于删除包含缺失值的行,并返回处理后的数据。传入参数how='all'时,仅当整行全为空值才会被删除;
- fillna()方法括号内可直接填入填充值,也可指定特定列进行填充,支持以字典形式传参;
- drop_duplicates()方法默认对所有列的重复值进行判断,默认保留keep='first'即第一个出现的行。可通过修改keep参数来调整行为,值可为'last'以保留最后一个重复项,或设置为False以不保留任何重复项。此外,还可指定列名进行去重,如传入参数subset=['列名1','列名2'],注意需以列表形式传参;
- head()方法传入的整数参数代表获取前几行数据;
- describe()方法用于掌握数值的分布情况,包括均值、最值、方差及分位数等统计信息。
- column和index属性可用于设置列索引和行索引,支持以列表形式传参;
- set_index()方法用于重新设置索引列,传入需用作行索引的列名;
- reset_index(level=None,drop=False,inplace=False),level参数指定将层次化索引的第几级转化为columns,第一个索引为0级,第二个为1级,默认将所有级别转化为columns。drop参数决定是否删除原索引,inplace参数决定是否修改原数据表;该方法常用于数据分组和数据透视表操作中。
- rename()方法用于重命名索引,可重新设置columns和index,以字典形式传参,key为原值,value为替换后的新值。
CSV文件导入指南
导入CSV文件
pandas导入CSV文件使用read_csv()方法;
import pandas as pd
csv_file1 = pd.read_csv('.\\data\\train-pivot.csv',index_col=0,header=0,nrows = 2)
通过sep参数设置分隔符,encoding指定编码格式。导入CSV文件时若涉及中文,通常需指定为'gbk'编码,否则可能报错。若只需查看大文件的前几行,可通过nrows参数限制读取行数。
import pandas as pd
csv_file1 = pd.read_csv('data/train-pivot.csv',encoding='gbk',nrows=2)
print(csv_file1)
用户ID 客户分类 区域 是否省会 7月销量 8月销量 0 59224 A类 一线城市 是 6 20 0 1 55295 B类 三线城市 否 37 27 35
可设置usecols参数指定导入的列。
用户ID 区域 0 59224 一线城市 1 55295 三线城市 2 46035 二线城市 3 2459 一线城市 4 22179 三线城市
SQL数据库数据导入
导入sql
pandas中提供了read_sql()方法:
import pandas as pd
import pymysql
# 创建连接
conn = pymysql.connect(host = 'localhost',user = 'python',
password = 'passwd',db = 'test',
charset = 'utf-8'
)
'''
user:用户名
password:密码
host:数据库地址/本机用localhost
db:数据库名
charset:编码,一般为utf-8
'''
sql = "SELECT * FROM user" # 写要执行的sql语句
pd.read_sql(sql,conn)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













