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


相关文章
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【10月更文挑战第42天】本文是一篇技术性文章,旨在为初学者提供一份关于如何使用Python进行数据分析的入门指南。我们将从安装必要的工具开始,然后逐步介绍如何导入数据、处理数据、进行数据可视化以及建立预测模型。本文的目标是帮助读者理解数据分析的基本步骤和方法,并通过实际的代码示例来加深理解。
80 3
|
2月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
2月前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
2月前
|
数据采集 存储 数据可视化
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
2月前
|
数据采集 数据可视化 数据挖掘
掌握Python数据分析,解锁数据驱动的决策能力
掌握Python数据分析,解锁数据驱动的决策能力
|
8月前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by='A', ascending=False)`。`rank()`函数用于计算排名,如`df['A'].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`和分别对'A'、'B'列排名。
119 2
|
8月前
|
索引 Python
如何使用Python的Pandas库进行数据合并和拼接?
Pandas的`merge()`函数用于数据合并,如示例所示,根据'key'列对两个DataFrame执行内连接。`concat()`函数用于数据拼接,沿轴0(行)拼接两个DataFrame,并忽略原索引。
127 2
|
8月前
|
数据挖掘 索引 Python
如何在Python中,Pandas库实现对数据的时间序列分析?
【4月更文挑战第21天】Pandas在Python中提供了丰富的时间序列分析功能,如创建时间序列`pd.date_range()`,转换为DataFrame,设置时间索引`set_index()`,重采样`resample()`(示例:按月`'M'`和季度`'Q'`),移动窗口计算`rolling()`(如3个月移动平均)以及季节性调整`seasonal_decompose()`。这些工具适用于各种时间序列数据分析任务。
81 2