栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Python百日基础系列】Day12 - Pandas 数据读取与存储

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Python百日基础系列】Day12 - Pandas 数据读取与存储

文章目录
  • 一、官网用户指南
  • 二、数据读取
    • 2.1 查看当前目录
    • 2.2 最简单的读取csv和excel文件
    • 2.3 读取前20行
    • 2.4 跳过前20行
    • 2.5 读取全部偶数行/奇数行
    • 2.6 按列号和列名读取指定列
    • 2.7 读取包含在指定列表中的列
    • 2.8 读取数据时指定索引列
    • 2.9 读取指定列,并设置列标题
    • 2.10 读取数据时不将缺失值标记为NaN,默认填充为空字符串
    • 2.11 读取数据时,将[]标记为缺失值
    • 2.12 读取数据时,忽略缺失值,默认填充为空字符串
    • 2.13 读取数据时,指定列的格式为字符串
    • 2.14 读取数据时,指定列的格式为时间
    • 2.15 分块读取数据
    • 2.16 读取其他格式的文件
  • 三、数据存储
    • 3.1 DF保存为 csv
    • 3.2 DF指定列保存为csv
    • 3.3 DF保存为 csv,忽略索引 / 指定索引名称
    • 3.4 DF保存为 csv,缺失值指定为特定字符串
    • 3.5 DF压缩保存为zip文件
    • 3.6 DF保存为 Excel
    • 3.7 DF保存为 JSON
    • 3.8 DF保存为 Markdown
    • 3.9 DF保存为 Html

视频讲解:

【Python百日基础系列】 Pandas 数据读取与存储

一、官网用户指南

https://pandas.pydata.org/docs/user_guide/io.html

格式数据描述读方法写方法
文本CSVread_csvto_csv
文本Fixed-Width 文本 Fileread_fwf
文本JSONread_jsonto_json
文本HTMLread_htmlto_html
文本LaTeXStyler.to_latex
文本XMLread_xmlto_xml
文本Local clipboardread_clipboardto_clipboard
二进制MS Excelread_excelto_excel
二进制Opendocumentread_excel
二进制HDF5 Formatread_hdfto_hdf
二进制Feather Formatread_featherto_feather
二进制Parquet Formatread_parquetto_parquet
二进制ORC Formatread_orc
二进制Stataread_statato_stata
二进制SASread_sas
二进制SPSSread_spss
二进制Python Pickle Formatread_pickleto_pickle
SQLSQLread_sqlto_sql
SQLGoogle BigQueryread_gbqto_gbq
二、数据读取 2.1 查看当前目录

数据的读写操作之前,务必确认当前目录,然后据此进行目录的走位调用

import os
print(os.getcwd())

输出结果:
E:python_100py_100
2.2 最简单的读取csv和excel文件
df = pd.read_csv('data.csv')
print(df)
df = pd.read_excel('../Top250.xlsx')
print(df)
2.3 读取前20行
df = pd.read_csv('data.csv', nrows=20)
print(df)
2.4 跳过前20行
df = pd.read_csv('data.csv', skiprows=20)
print(df)
2.5 读取全部偶数行/奇数行
# 跳过奇数行,取偶数行
df = pd.read_csv('data.csv', skiprows=lambda x: x!=0 and not x%2)
print(df)
# 跳过偶数行,取奇数行
df = pd.read_csv('data.csv', skiprows=lambda x: x%2)
print(df)

2.6 按列号和列名读取指定列
# 按列号读取指定列
df = pd.read_csv('data.csv', usecols=[0, 2, 3])
print(df)
# 按列名读取指定列
df = pd.read_csv('data.csv', usecols=['positionId', 'companyId', 'companySize'])
print(df)
2.7 读取包含在指定列表中的列
lst = ['positionId','test','positionName', 'test1','salary']
df = pd.read_csv('data.csv', usecols=lambda x: x in lst)
print(df)
2.8 读取数据时指定索引列
# 指定单层索引
df = pd.read_csv('data.csv', index_col='positionId')
print(df)
# 指定多层索引
df = pd.read_csv('data.csv', index_col=['positionId','positionName'])
print(df)
2.9 读取指定列,并设置列标题

注意:读取时指定列标题,只能使用列号读取,不能使用列名读取

# 读取时指定列标题,只能使用列号读取,不能使用列名读取
df = pd.read_csv('data.csv', usecols=[0, 1], names= ['ID', '岗位名称'])
print(df)
# 读取后修改列标题,可以使用列号或列名读取
df = pd.read_csv('data.csv', usecols=['positionId','positionName'])
df.columns = ['ID', '岗位名称']
print(df)
2.10 读取数据时不将缺失值标记为NaN,默认填充为空字符串
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName','plus'])
print(df)
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName','plus'], keep_default_na=True)
print(df)
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName','plus'], keep_default_na=False)
print(df)
w = df.loc[0, 'plus']
print(type(w), len(w), w=='')
2.11 读取数据时,将[]标记为缺失值
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName', 'aggregatePositionIds'], na_values=['[]'])
print(df)
2.12 读取数据时,忽略缺失值,默认填充为空字符串
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName', 'plus'])
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName', 'plus'], na_filter=False)
print(df)
w = df.loc[0, 'plus']
print(type(w), len(w), w=='')
2.13 读取数据时,指定列的格式为字符串
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName', 'companyId'])
print(df.dtypes)
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName', 'companyId'], dtype={'positionId':str, 'companyId':str})
print(df.dtypes)
2.14 读取数据时,指定列的格式为时间
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName', 'createTime'])
print(df.dtypes)
df = pd.read_csv('data.csv', usecols=['positionId', 'positionName', 'createTime'], parse_dates=['createTime'])
print(df.dtypes)
2.15 分块读取数据
chunks = pd.read_csv('data.csv', chunksize=10)
print(chunks)
for chunk in chunks:
    print(chunk)
2.16 读取其他格式的文件
  • 读取txt文件:pd.read_table("xxx.txt")
  • 读取中文txt文件:pd.read_csv("xxx.txt",encoding='gb18030',sep = 't')
  • 读取 JSON 文件:pd.read_json("xxx.json")
  • 读取 HDF5 文件:pd.read_hdf("xxx.h5", "table")
  • 读取剪贴板数据:pd.read_clipboard()
  • 读取SQL数据:pd.read_sql('SELECt int_column, date_column FROM test_data', conn)
  • 读取网页数据:pd.read_html("https://www.xxx.com/xxx.htm")[0]
三、数据存储 3.1 DF保存为 csv
df = pd.read_csv('data.csv')
print(df)
df.to_csv('df_bak.csv')
3.2 DF指定列保存为csv
df = pd.read_csv('data.csv')
print(df)
df.to_csv('df_bak.csv', columns=['positionId' ,'positionName'])
3.3 DF保存为 csv,忽略索引 / 指定索引名称
df = pd.read_csv('data.csv')
print(df)
df.to_csv('df_bak.csv', columns=['positionId' ,'positionName'], index=False)
df.to_csv('df_bak.csv', columns=['positionId' ,'positionName'], index_label='行号')
3.4 DF保存为 csv,缺失值指定为特定字符串
df = pd.read_csv('data.csv')
print(df)
df.to_csv('df_bak.csv', columns=['positionId' ,'plus'], na_rep='我是缺失值')
3.5 DF压缩保存为zip文件
df = pd.read_csv('data.csv')
print(df)
compression_options = dict(method='zip', archive_name='df_bak.csv')
df.to_csv('df_bak.zip', compression=compression_options)

3.6 DF保存为 Excel
df = pd.read_csv('data.csv')
print(df)
df.to_excel('df_bak.xlsx')
3.7 DF保存为 JSON
df = pd.read_csv('data.csv')
print(df)
df.to_json('df_bak.json')

3.8 DF保存为 Markdown

注意:需要先安装tabulate作为依赖包

pip install tabulate -i https://mirror.baidu.com/pypi/simple 
df = pd.read_csv('data.csv')
print(df)
df.to_markdown('df_bak.md')

3.9 DF保存为 Html
df = pd.read_csv('data.csv')
print(df)
df.to_html('df_bak.html')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355812.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号