python数据分析基础006 -利用pandas带你玩转excel表格(上篇)

简介: python数据分析基础006 -利用pandas带你玩转excel表格(上篇)

文章要点

🍺前言image.png🍁(一)创建文件image.png运行时报错:No module named ‘openpyxl’

这是我们在使用openpyxl包时没有安装该模块!因此我们需要在控制台输入指令:image.png此时问题就解决啦!!

import pandas as pd
df = pd.DataFrame()
df.to_excel('D:/Temp01/test.xlsx')
print('创建成功!!')

结果:

🍒1.在创建的表格内插入数据image.png

import pandas as pd
numb_list = {
    'ID':[1,2,3,4],
    'name':['苏凉','jake','佚名','Tom'],
    'age':[22,18,25,16],
    'QQ_num':[787991021,2544722208,12545654,58456]
}
df = pd.DataFrame(numb_list)
df.to_excel('D:/Temp01/test.xlsx')
print('创建成功!!')

运行结果:

🍒2.修改索引image.png

df = df.set_index('ID')

结果:

🍁(二)读取文件

🍒1.导入excel表格

people = pd.read_excel('./People.xlsx') #导入excel表格

🍒2.查看表格形状

print(people.shape) #查看有多少行多少列

🍒3.查看列名

x = people.columns
for i in x:
    print(i)

结果:

✨3.1 当第一行为空或有其他数据

image.png

import pandas as pd
people = pd.read_excel('./People.xlsx',header = 1)
print(people.columns)

✨3.2 自定义列名

当打开的文件没有列名时,我们需要设置列名。

import pandas as pd
people = pd.read_excel('./People.xlsx',header=None)
# 自定义列名
people.columns=['ID','Type','Title','FirstName','MiddleName','LastName']
people.set_index('ID',inplace=True)
print(people.columns)
# 保存
people.to_excel('./test.xlsx')
print('save success')

结果:

✨3.3 指定索引

在上面我们创建了一个test文件。当我们再次打开时,pandas会给我们重新创建一个索引,如下图:

这时我们需要指定索引

import pandas as pd
people = pd.read_excel('./test.xlsx',index_col="ID")
people.to_excel('./test1.xlsx')
print('save success')

结果:

🍒4.用Series创建行,列,单元格

import pandas as pd
d1 = pd.Series([10,20,30],index=[1,2,3],name='a')
d2 = pd.Series([40,50,60],index=[1,2,3],name='b')
d3 = pd.Series([100,200,300],index=[2,3,4],name='c')
df = pd.DataFrame({d1.name:d1,d2.name:d2,d3.name:d3})
df2 = pd.DataFrame([d1,d2,d3])
print(df)
print('*'*100)
print(df2)

结果:

image.png

🍒5.利用pandas实现excel自动填充

✨5.1 填充普通序列

实例:填充ID,InStore,Date

import pandas as pd
books = pd.read_excel('./Books.xlsx',skiprows=3,usecols='C:F',dtype={'ID':str})
df = pd.DataFrame(books)
for i in books.index:
    # 对id自动填充
    books['ID'].at[i] = i+1
    # 对Instore自动填充
    books['InStore'].at[i] = 'no' if i%2==0 else 'yes'
print(books)

结果:

✨5.2 填充日期序列image.png

from datetime import date,timedelta

image.png

 start_time = date(2019,1,25)

🎐5.2.1 填充日

books['Date'].at[i] = start_time + timedelta(days=i)

结果:

注:timedelda最多只能加到日期,无法加年以及月!!

🎐5.2.2 填充年

 books['Date'].at[i] = date(start_time.year+i,start_time.month,start_time.day)

结果:

🎐5.2.3 填充月(难点!!!)

# d -日期 ,md—月的该变量
def add_month(d,md):
    # 得到含有多少年
    yd = md//12
    # 获取月份
    m = d.month +md%12
#     判断是否满足条件
    if m != 12:
        yd += m//12
        m = m%12
    return date(d.year +yd ,m ,d.day)

image.png

    books['Date'].at[i] = add_month(start_time ,i)

结果:

✨5.3 源码及保存

import pandas as pd
from datetime import date,timedelta
# d -日期 ,md—月的该变量
def add_month(d,md):
    # 得到含有多少年
    yd = md//12
    # 获取月份
    m = d.month +md%12
#     判断是否满足条件
    if m != 12:
        yd += m//12
        m = m%12
    return date(d.year +yd ,m ,d.day)
books = pd.read_excel('./Books.xlsx',skiprows=3,usecols='C:F',dtype={'ID':str})
df = pd.DataFrame(books)
start_time = date(2019,1,25)
for i in books.index:
    # 对id自动填充
    books['ID'].at[i] = i+1
    # 对Instore自动填充
    books['InStore'].at[i] = 'no' if i%2==0 else 'yes'
    # 对日自动填充
    # books['Date'].at[i] = start_time
#     对年自动填充
    books['Date'].at[i] = date(start_time.year+i,start_time.month,start_time.day)
#       对月份自动填充
    books['Date'].at[i] = add_month(start_time ,i)
books.set_index('ID',inplace=True)
books.to_excel('./book1.xlsx')
print('save success')

结果:

 

🍻结语

image.png


相关文章
|
3天前
|
XML 物联网 API
服务端和客户端 RESTful 接口上传 Excel 的 Python 代码
本文作者木头左是物联网工程师,分享如何使用 Python 和 Flask-RESTful 构建一个简单的 RESTful API,实现文件上传功能,特别支持Excel文件。通过安装Flask和Flask-RESTful库,创建Flask应用,实现文件上传接口,并将其添加到API。该方法具有简单易用、灵活、可扩展及社区支持等优点。
服务端和客户端 RESTful 接口上传 Excel 的 Python 代码
|
1天前
|
测试技术 iOS开发 MacOS
用Python处理Excel的资源
用Python处理Excel的资源
用Python处理Excel的资源
|
3天前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【6月更文挑战第12天】在数字时代,Python因其强大的数据处理能力和易用性成为数据分析首选工具。结合Pandas(用于高效数据处理)和Matplotlib(用于数据可视化),能助你成为数据分析专家。Python处理数据预处理、分析和可视化,Pandas的DataFrame简化表格数据操作,Matplotlib则提供丰富图表展示数据。掌握这三个库,数据分析之路将更加畅通无阻。
|
4天前
|
JSON 数据挖掘 API
数据分析实战丨基于pygal与requests分析GitHub最受欢迎的Python库
数据分析实战丨基于pygal与requests分析GitHub最受欢迎的Python库
17 2
|
5天前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之在本地用tunnel命令上传excel表格到mc遇到报错: tunnel upload C:\Users***\Desktop\a.xlsx mc里的非分区表名 -s false;该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
6天前
|
机器学习/深度学习 数据可视化 数据挖掘
python每日可视化分析:从过去到现代数据分析的演进
python每日可视化分析:从过去到现代数据分析的演进
|
11天前
|
SQL 存储 数据可视化
excel表格sql数据库
Excel表格和SQL数据库是两种不同的数据管理工具,它们各自有自己的特点和用途。下面我将分别介绍它们,并探讨它们之间的关系和互操作性。 一、Excel表格 Excel是微软公司推出的一款
|
13天前
|
Python 数据挖掘 数据可视化
Python数据分析——Pandas与Jupyter Notebook
【6月更文挑战第1天】 本文探讨了如何使用Python的Pandas库和Jupyter Notebook进行数据分析。首先,介绍了安装和设置步骤,然后展示了如何使用Pandas的DataFrame进行数据加载、清洗和基本分析。接着,通过Jupyter Notebook的交互式环境,演示了数据分析和可视化,包括直方图的创建。文章还涉及数据清洗,如处理缺失值,并展示了如何进行高级数据分析,如数据分组和聚合。此外,还提供了将分析结果导出到文件的方法。通过销售数据的完整案例,详细说明了从加载数据到可视化和结果导出的全过程。最后,讨论了进一步的分析和可视化技巧,如销售额趋势、产品销售排名和区域分布,以及
34 2
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
本文介绍了如何批量快速查询手机号码归属地并进行分类。首先,通过提供的百度网盘或腾讯云盘链接下载免费查询软件。其次,开启软件,启用复制粘贴功能,直接粘贴号码列表并选择高速查询。软件能在极短时间内(如1.76秒内)完成40多万个号码的查询,结果包括归属地、运营商、邮箱和区号,且数据准确。之后,可直接导出数据至表格,若数据超过100万,可按省份、城市及运营商分类导出。文章还附带了操作动画演示,展示全程流畅的处理大量手机号码归属地查询的过程。
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
|
存储 程序员 C#
Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)
Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)
Python Qt GUI设计:QTableView、QListView、QListWidet、QTableWidget、QTreeWidget和QTreeWidgetltem表格和树类(提升篇—1)