对比Excel-Python数据分析——pandas数据结构、读取/导出数据源(1)

1.基础知识

2.1 format 格式化输出

在这里插入图片描述

2.2 浮点数设置

在这里插入图片描述

2.3 百分比设置

在这里插入图片描述

2.4 列表

  • 列表复制 :a=[‘1’]*2
  • 列表合并:+,或者A.extend(B)将A合并到B中
  • 插入元素:
    往A中加入元素4,A.append(4)
    在A中的指定位置(3)加入4,A.insert(2,4)
    获取值4在列表出现的次数,A.count(4)
    获取某个值4出现的位置,A.index(4)
    获取列表A中指定位置的值,利用索引
    删除列表A 中的值,删除值A.remove(4),删除指定位置(3)的值A.pop(2)
    对列表的值进行排序,A.sort()

2.5 map函数

在这里插入图片描述在这里插入图片描述

2. Pandas数据结构

2.1 Series数据结构

Series是一种类似于一维数组的对象,由一组数据及一组与之相关的数据标签索引组成。

2.11 Series的创建

import pandas as pd
# 只传入值,默认索引从0开始
s=pd.Series(['a','b'])
#传入值和指定索引
s=pd.Series(['a','b'],index=['1','2'])
#传入字典,key对于索引,value对应值

2.12 获取Serie的索引和值

  • 获取索引:s.index
  • 获取值:s.values

2.2 DataFrame数据结构

DataFrame是由由一组数据与一对索引(行索引与列索引)组成的表格型数据结构。

2.21 DataFrame的创建

传入列表
在这里插入图片描述
传入字典
在这里插入图片描述

2.22 获取DataFrame的索引

  • 列索引:df.columns
  • 行索引:df.index

3. 读取数据源

3.1 读取.xlsx文件

excel实现:双击直接打开

#电脑的路径默认使用\,在路径前加入转义字符r,避免路径里面的\被转义
df=pd.read_excel(r'C:\Users\text.xlsx')
#也可以/
df=pd.read_excel('C:/Users/text.xlsx')
#指定导入哪个sheet,指定sheet的名称
df=pd.read_excel('C:/Users/text.xlsx',sheet_name='Sheet1')
#指定导入哪个sheet,也可以传入sheet顺序,从0开始计数
df=pd.read_excel('C:/Users/text.xlsx',sheet_name=0)
# 指定将文件的第0列为行索引
df=pd.read_excel('C:/Users/text.xlsx',sheet_name=0,index_col=0)
#指定第0行的内容当作列索引
df=pd.read_excel('C:/Users/text.xlsx',sheet_name=0,header=0)
#指定读取某些列,usecols传入列表(列名值,或者列的索引号)
df=pd.read_excel('C:/Users/text.xlsx',sheet_name=0,usecols=['','','',''])

3.2 读取.csv文件

excel实现:双击直接打开

#电脑的路径默认使用\,在路径前加入转义字符r,避免路径里面的\被转义
df=pd.read_csv(r'C:\Users\text.csv')
#指明分隔号符号;csv文件默认是,号分割,如果text是用空格为分隔符,那么默认,号分不开
df=pd.read_csv('C:/Users/text.csv',sep='')
#指定读取行数,读取前两行
df=pd.read_csv('C:/Users/text.csv',nrows=2)
#指定编码格式
# 如果文件时CSV-UTF-8文件,编码格式改为utf-8
df=pd.read_csv('C:/Users/text.csv',encoding='utf-8')
# 如果文件时CSV文件,编码格式改为gbk
df=pd.read_csv('C:/Users/text.csv',encoding='gbk')
#如果文件路径含有中文,用上面的会报错,需要将默认的C语言改为python
df=pd.read_csv('C:/Users/学习笔记/text.csv',engine='python',encoding='utf-8-sig')
df=pd.read_csv('C:/Users/text.csv',engine='python',encoding='gbk')
#.csv文件行列索引,以及导入指定列与.xlsx文件一致

3.3 读取.txt文件

excel实现:数据栏>获取外部数据>自文本

#read_table()是将利用分隔符分开的文件导入DataFrame的通用函数,它不仅可以导入.txt文件,还可以导入.csv文件
df=pd.read_table('C:/Users/text.txt',sep='')
#读取csv文件即使默认的,号的分隔符,也不可以省略不写
df=pd.read_table('C:/Users/text.csv',sep=',')
# 其他的与read_csv()函数的基本一致

3.4 导入sql文件

excel实现:数据栏>自其他来源导入sql文件
python实现:第一步将python与数据库进行连接,第二步利用python执行sql查询语句。
在这里插入图片描述

3.5 辅助功能

  • 获取前3行:df.head(3)
  • 获取行列数:df.shape
  • 获取数据表的数据类型:df.info()
  • 获取某列的数值分布情况:df.describe()

4. 数据导出

4.1 导出为.xlsx文件

在python中,文件导出为.xlsx文件使用的是df.to_excel()函数。
**注意:**同一导出的文件已经在本地打开,则不能再次运行导出代码。

# 1.设置文件导出的路径 
df.to_excel(excel_writer=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.xlsx")
# 2.设置sheet名称
df.to_excel(excel_writer=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.xlsx",sheet_name='模型1')
# 3.设置索引
# 上面两种方式导出文件的索引都是默认的,即0,1,...
# 设置参数,保留原来数据的索引
df.to_excel(excel_writer=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.xlsx",sheet_name='模型1',index=False)
# 4.设置要导出的列
# 若数据的列很多,我们只需导出其中几列
df.to_excel(excel_writer=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.xlsx",sheet_name='模型1',index=False,columns=['列名1','列名2'])
# 5.设置编码格式
# 我们在导入/导出文件时需要设置编码格式。
df.to_excel(excel_writer=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.xlsx",sheet_name='模型1',index=False,encoding="utf-8")
# 6.缺失值处理
# 对缺失值填充。
df.to_excel(excel_writer=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.xlsx",sheet_name='模型1',index=False,encoding="utf-8",na_rep=0)
# 7.无穷值处理
df.to_excel(excel_writer=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.xlsx",sheet_name='模型1',index=False,encoding="utf-8",na_rep=0,inf_rep=0)

4.2 导出为.csv文件

在python中,文件导出为.csv文件使用的是df.to_csv()函数。

# 1.设置文件导出的路径 
df.to_csv(path_or_buf=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.csv")
# 2.设置索引
# 上面两种方式导出文件的索引都是默认的,即0,1,...
# 设置参数,保留原来数据的索引
df.to_csv(path_or_buf=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.csv",index=False)
# 3.设置要导出的列
# 若数据的列很多,我们只需导出其中几列
df.to_csv(path_or_buf=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.csv",index=False,columns=['列名1','列名2'])
# 4.设置分割符号
df.to_csv(path_or_buf=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.csv",index=False,sep=",")
# 5.缺失值/无穷值处理
# 对缺失值填充。
df.to_csv(path_or_buf=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.csv",index=False,sep=",",na_rep=0,inf_rep=0
# 6.设置编码格式
# 默认使用utf-8,但是会出现乱码,常使用utf-8-sig/gbk
df.to_csv(path_or_buf=r"D:\E-WenDang\ruanjianDM\数字方向\分析建模.csv",index=False,sep=",",na_rep=0,encoding="utf-8-sig")

4.3 将文件导出多个sheet

在这里插入图片描述

4.4 按日期保存最新数据到指定文件中

d=dt.today().strftime('%Y-%m-%d')
date=[d,d,d,d,d]
titles=['平面', '网页', '交互','审核','其他']
c,dayra=chan_neng_third()
daydict={'日期':date,'工种分类':titles,'所需天数':dayra}
daydate=pd.DataFrame(daydict,columns=['日期','工种分类','所需天数']) 
everydaydate= pd.read_excel('所需天数日更.xlsx',sheet_name='Sheet1')
book = load_workbook('所需天数日更.xlsx')
with pd.ExcelWriter("所需天数日更.xlsx", mode='a', engine='openpyxl') as writer:
    if pd.to_datetime(daydate.loc[daydate.index[-1],'日期']).strftime('%Y-%m-%d') != everydaydate.loc[everydaydate.index[-1],'日期']:
        everydaydate = everydaydate.append(daydate,ignore_index=True,sort=False)
        writer.book= book
        writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
        everydaydate.to_excel(writer,sheet_name='Sheet1',index=False)   
    elif pd.to_datetime(daydate.loc[daydate.index[-1],'日期']).strftime('%Y-%m-%d') == everydaydate.loc[everydaydate.index[-1],'日期']:
        everydaydate=everydaydate.drop(everydaydate.iloc[[-5,-4,-3,-2,-1]].index)
        everydaydate = everydaydate.append(daydate,ignore_index=True,sort=False)
        writer.book= book
        writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
        everydaydate.to_excel(writer,sheet_name='Sheet1',index=False)

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值