pandas 学习笔记03 数据读取与输出

数据读取:

        读取:df = df.pa.read_xxx()

        导出:df.to_xxx()

支持csv,excel,json,html,cdf=pd.read_clipboard()-剪贴板,SQL等主流数据格式

#csv语法和实例
pd.read_csv(filepath_or_buffer: FilePathOrBuffer,  #支持本地path,url,字符串,io字节sep=lib.no_default,#分割符,默认为',',常见的分割符还有(\t)、空格、'|'(tab)等 delimiter=None, #定界符,生效后sep参数无效# Column and Index Locations and Namesheader="infer",#header=0第一行,None-没有表头,[1,2,3]-多层索引names=lib.no_default,#指定列的名称,不包含列名,header=None,name=['name1','name2](序列)index_col=None,#支持int/str/int序列/str序列/False 默认为None。值为False-不在使用首列为索引,值为num-第几列是索引,值可为列名,列名列表,数字列表usecols=None,#只读取部分列,可按索引或列名组成的列表作为值,df筛选功能排序,或者lambda x:x.upper() in ['COL3','COL1] in后面的为顺序squeeze=False,#返回序列,True 一列为S,其他为DataFrameprefix=lib.no_default,#表头前缀,主要用于无表头的数据mangle_dupe_cols=True,#处理重复列名,TRUE -x,x.1...,x.5 False-x,x,x 要覆盖前面列名# General Parsing Configurationdtype: DtypeArg | None = None,#指定数据类型 值为np.float64-所有数据均为此类型,{'c1':str,'c2':np.float64}或者[datetime,datetiame,str,float] 依次指定engine=None,#数据分析引擎,一般不需从新值,c快,python功能完善converters=None,#对列数据进行转换,字典形式传入,列名作为字典的keytrue_values=None,#将指定的文本转为True 或者False,默认为Nonefalse_values=None,skipinitialspace=False,skiprows=None,#跳过指定行 2,range(2)代表跳过前三行,[24,234,141]跳过指定行,lambda x:x%2!=0 隔行跳skipfooter=0,# 1-最后一行不加载nrows=None,#读取指定行 值为int# NA and Missing Data Handlingna_values=None,#空值替换,NaN,null,NULL,nan等默认为空值,还需注意与keep_default_na搭配使用keep_default_na=True,na_filter=True,#检查丢失值,大文件设置为False可提高读取速度verbose=False,skip_blank_lines=True,#指定是否跳过空行,否则标记为NaN# Datetime Handlingparse_dates=False,#时间解析器,默认使用dateutil.parser.parser做转换,某些或所有列启用了parse_dates,并且datetime字符串格式都相同,设置为True,提高速度infer_datetime_format=False,#设定为True,parse_date可用,pandas将尝试转换时间类型keep_date_col=False,#True保留原有的时间列,False将不在保留date_parser=None,dayfirst=False,#True dd/mm-mm/dd eg:2020-01-06 -2020-06-01cache_dates=True,#解析重复日期字符串,会大大提高速度# Iteration#文本处理iterator=False, #True,返回TextFileReader对象,可迭代处理chunksize=None,#指定文件块的大小,用于分块处理大型csv文件# Quoting, Compression, and File Formatcompression="infer",#压缩格式thousands=None,#对文件中的符号进行特殊处理decimal: str = ".",lineterminator=None,#行结束符,只对c解析器起作用quotechar='"',#表示引用数据的开始和结束的字符quoting=csv.QUOTE_MINIMAL,#空值识别字段的引号模式0-QUOTE_MINIMAL 仅特殊字段有引号 1-QUOTE_ALl 所有字段 2-QUOTE_NONNUMERIC 非数字字段 3-QUOTE_NONE 都没有doublequote=True,#双引号escapechar=None,#可以传入一个转义符,用于过滤数据中的该转义符comment=None,#注释标识,单个字符,在行中找到标识符,将完全忽略该行encoding=None,#指定字符编码,’utf8','gb2312'encoding_errors: str | None = "strict",dialect=None,# Error Handlingerror_bad_lines=None,warn_bad_lines=None,# TODO (2.0): set on_bad_lines to "error".# See _refine_defaults_read comment for why we do this.on_bad_lines=None,# Internaldelim_whitespace=False,#空格分隔符low_memory=_c_parser_defaults["low_memory"],memory_map=False,float_precision=None,storage_options: StorageOptions = None,
)
#读取excel
dfs=pd.read_excel()
#表格
#sheet_name指定读取那个sheet,默认1,sheet_name=1代表读取第二个sheet
# shent_name='name1'按表名读取
# sheet_name=None 读取所有表格
# sheet_name=[0,1,'sheet5'] 返回一个df组成的字段
#  dfs['sheet5']#按sheet5名读取
#数据输出
df.to_csv('done.csv',index=False) #不要索引
#对较大文件进行压缩处理,也可用sep设置分隔符
compression_opts = dict(method='zip',archive_name='out.csv')
df.to_csv('out.zip',index=False,compression=compression_opts)df.to_excel('path_to_file.xlsx',sheet_name='sheet1',index=False)#指定sheet名,不要索引
df.to_excel('path_to_file.xlsx',index='label',merge_cells=False)#指定索引为label,不合并单元格
#指定操作引擎01
df.to_excel('path_to_file.xlsx',sheet_name='sheet1',index=False,engine='xlsxwriter') 
#指定操作引擎02
writer=pd.ExcelWriter('path_file.xlsx',engine='xlsxwriter')
df.to_excel(writer)
writer.save()
#设置系统引擎
from pandas import options
options.io.excel.xlsx.writer = 'xlsxwriter'
df.to_excel('path_file.xlsx',sheet_name='sheet1')#写入SQL
from sqlalchemy import create_engine #需安装SQLALchemy
engine = create_engine('sqlite:///:memory:')
#取出表名为data的数据
with engine.connect() as conn,conn.begin():data = pd.read_sql_table('data',conn)
#data
#将数据写入
data.to_sql('data',conn)
#大量写入
data.to_sql('data_chunked',engine,chunksize=1000)
#使用sql查询
pd.read_sql_query('select * from data',engine)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部