python 对xlsx文件数根据日期进行统计分析_Python处理Excel的常用操作(一)

最近一直忙着学习和写开题报告,都没有时间更文了,今天偷偷来休闲一下。

很多人一开始学习python,就是看到了很多关于python能够快速处理和解决表格的广告,于是便有了今天的分享。我主要利用pandas库来做一些简单且常规的操作。

1、创建表格

在excel中,创建表格很简单,打开excel,输入相关信息,然后保存,便是一张表格。

在python中,可以用以下代码实现:

import pandas as pd
df=pd.DataFrame({'ID':[1,2,3],'Name':['A','B','C']})
df = df.set_index('ID')
df.to_excel(r'C:UsersAdministratorDesktoppythonprojectexcelexcel.xls')
print('done')

2、读取excel文件

在excel中,直接打开文件便可以,在python中,可以用以下代码:

people = pd.read_excel(r'C:UsersAdministratorDesktoppythonprojectexcelPeople.xlsx')
# 当标题行有其他数字,则header =1,
# 当没有标题头,设置header=None
# people.columns=['1','2','3','4']
# people.set_index('ID',inplace = True)# 会自动设置people = pd.read_excel(r'C:UsersAdministratorDesktoppythonprojectexcelPeople.xlsx',index_col ='ID')
print(people.shape)
print(people.columns)
print(people.head())

3、行、列和单元格操作

在python中,一般会用字典或者序列来进行数值的填充。

s1=pd.Series([100,200],index=['x','y'])
print(s1)x    100
y    200将序列转化为DataFrame
s1 = pd.Series([1,2,3],index=[1,2,3],name='A')
s2 = pd.Series([10,20,30],index=[1,2,3],name='B')
s3 = pd.Series([100,200,300],index=[1,2,3],name='C')df =pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})
print(df)A   B    C
1  1  10  100
2  2  20  200
3  3  30  300

4、自动填充

在excel中,自动填充的方法可见下图:

0dad3cfc5cbc42c3f541822f03f5b456.png

0e5d21258fa91c30fcd068188ed6a8d4.png

在python中需要先读取数据,但由于数据并没有顶格,直接读取会有错误。

5ea250a6d0ff80565b6509dcf9ad96f5.png
# skiprows=3,usecols='C:F'
books = pd.read_excel(r'C:UsersAdministratorDesktoppythonprojectexcelBooks (1).xlsx',skiprows=3,usecols='C:F',dtype={'ID':str,'InStore':str,'Date':str})
# ID列的自动填充(两种方法)
for i in books.index:# books['ID'].at[i] =i+1books.at[i,'ID'] =i+1
# Instore列的自动填充(两种方法)
for i in books.index:# books['InStore'].at[i]='Yes' if i%2 ==0 else 'No'books.at[i,'InStore']='Yes' if i%2 ==0 else 'No'
# 日期列的自动填充
# 按天自动填充
start=date(2018,1,1)
for i in books.index:books['Date'].at[i] = start + timedelta(days=i)
print(books)ID      Name InStore        Date
0    1  Book_001     Yes  2018-01-01
1    2  Book_002      No  2018-01-02
2    3  Book_003     Yes  2018-01-03
3    4  Book_004      No  2018-01-04
4    5  Book_005     Yes  2018-01-05
5    6  Book_006      No  2018-01-06
6    7  Book_007     Yes  2018-01-07
7    8  Book_008      No  2018-01-08
8    9  Book_009     Yes  2018-01-09

5、函数填充、计算列

在excel中,通过两列数据计算结果,可以用公式,比如说,我要计算销售额,那么在excel的单元格输入=销量范围*单价数据范围,在python中可以使用以下代码:

books = pd.read_excel(r'C:UsersAdministratorDesktoppythonprojectexcelBooks.xlsx',index_col='ID')
# 第一种方式
books['Price'] = books['ListPrice'] *books['Discount']
# 第二种方式(将单元格进行依次计算)
for i in books.index: books['Price'].at[i] = books['ListPrice'].at[i] * books['Discount'].at[i]
# 第三种方式(只算一部分的价格,不一定每一个都需要)
for i in range(5,16): books['Price'].at[i] = books['ListPrice'].at[i] * books['Discount'].at[i]
print(books)

6、数据排序

在excel中有自动的排序功能,在python中可以利用sort_values()函数实现

products = pd.read_excel(r'C:UsersAdministratorDesktoppythonprojectexcelList.xlsx', index_col='ID')
products.sort_values(by=['Worthy', 'Price'], ascending=[True, False], inplace=True)
print(products)Name  Price Worthy
ID                           
18  Product_018  11.22     No
15  Product_015  10.31     No
3   Product_003   9.62     No
9   Product_009   8.98     No
6   Product_006   7.34     No
12  Product_012   7.29     No
2   Product_002  11.99    Yes
17  Product_017  11.95    Yes
8   Product_008  11.14    Yes
4   Product_004  11.08    Yes
7   Product_007  10.97    Yes

7、数据过滤和筛选

在excel中有筛选器可以根据相关提示一步步操作,而python中可以用以下代码设置筛选器:

students = pd.read_excel(r'C:UsersAdministratorDesktoppythonprojectexcelStudents.xlsx', index_col='ID')
students = students.loc[students['Age'].apply(lambda a:18 <= a <= 30)].loc[students.Score.apply(lambda s:60 <= s < 90)]  
print(students)Name  Age  Score
ID                         
4   Student_004   27     73
8   Student_008   21     61
9   Student_009   18     85
19  Student_019   19     86

今天暂时分享到这里啦,等后期慢慢整理剩下的一些常用技巧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(四)Asp.net web api中的坑-【api的返回值】

void无返回值IHttpActionResultHttpResponseMessage自定义类型我这里并不想赘述这些返回类型&#xff0c; 可以参考博文http://blog.csdn.net/leonken88/article/details/53063693 和大神的http://www.cnblogs.com/landeanfen/p/5501487.html 我要说我遇到的坑是&#xff0c; p…

C语言实现树,你一定看得懂

之前写了好多篇文章关于数据结构的&#xff0c;既然讲到了数据结构&#xff0c;那么就必须要说一下树&#xff0c;树这个数据结构使用范围非常广&#xff0c;应用前景广阔。关联文章&#xff1a;五分钟搞懂什么是红黑树&#xff08;全程图解&#xff09;Linux 内核红黑树分析这…

else应输入一个语句是什么意思_Python基础知识储备,关于if-else使用性能的一点感悟...

前面给大家介绍的if-if分支结构是只要条件满足就会执行&#xff1b;而if-else的语句结构是前面的条件成立执行什么操作&#xff0c;则下面的分支结构就不会被执行&#xff0c;若前面的条件不成立(否则)做什么。以下通过三个案例给大家演示if-else语句的使用方法&#xff1a;Pyt…

你应该拥有的无名剑

想了很久的名字&#xff0c;刹那间我不知道怎么给文章起名字了&#xff0c;一个响亮的名字远比正文来得精彩&#xff0c;既然题目比文章精彩&#xff0c;那么就会喧宾夺主&#xff0c;所以我们看很多古诗词的名字起名《无题》&#xff0c;也可以理解为某个时段&#xff0c;肚子…

你真的知道敏捷和迭代吗?

在这敏捷开发横行的时代中&#xff0c;人人都在谈敏捷&#xff0c;人人都在谈迭代&#xff0c;似乎大家好像都尝到了敏捷带来的甜头&#xff0c;记得有一次跟朋友吃饭&#xff0c;说他们现在的项目用敏捷开发&#xff0c;每个迭代都能看到不断完善的产品&#xff0c;非常有成就…

谈优势成长

以下文章来自我的一个同事&#xff0c;希望他的感悟能够帮助到一些人&#xff0c;大家共勉~工作忙碌的时候总是不能抽中空闲来读书&#xff0c;利用上周坐飞机的2个小时时间&#xff0c;不能看手机&#xff0c;不刷微信&#xff0c;我一口气读了一本好书《优势成长》。这不是一…

@cacheable 设置过期时间_缓存面试三连击——聊聊Redis过期策略?内存淘汰机制?再手写一个LRU 吧!...

大家好&#xff0c;今天我和大家想聊一聊有关redis的过期策略的话题。听到这里你也许会觉得&#xff1a;“我去&#xff0c;我只是个日常搬砖的&#xff0c;这种偏底层的知识点&#xff0c;我需要care吗&#xff1f;”话虽如此&#xff0c;但是兄die,如果你连标题上问题都不知道…

linux终端贪吃蛇,分享|nSnake: 在Linux的终端上玩经典的贪食蛇游戏

你知道20世纪末的那些古老的诺基亚手机上最棒的东西是什么吗&#xff1f; 贪食蛇! 我以前在这个看似无聊但却让人上瘾的游戏上花费了大把的时间。在古老的诺基亚手机被智能手机取代的同时&#xff0c;贪食蛇也被另外的无聊但却令人上瘾的游戏取代了&#xff0c;比如说&#xff…

vue 组件之间数据传递(七)

1、props:父组件 -->传值到子组件 app.vue是父组件 &#xff0c;其它组件是子组件&#xff0c;把父组件值传递给子组件需要使用 >props 在父组件&#xff08;App.vue&#xff09;定义一个属性&#xff08;变量&#xff09;sexVal 男 把该值传递给 子组件(B.vue)&#x…

人在旅途之桂林

先说下这篇文章是多图的所以看文章的同学最好在wifi环境下之前有发文章说我们学院建院十周年所以&#xff0c;哈哈哈&#xff0c;就有机会回桂林嗨皮了出发的时候车子没电了&#xff0c;叫了保险过来搭电搞了一段时间&#xff0c;不过不影响我们顺利到达桂林第一时间先吃碗米粉…

python pyecharts 折线图_python数据大屏pyecharts库2020.8.31

数据大屏V0.1-2020.8.31前言千辛万苦&#xff0c;找到了python能实现数据大屏库pyecharts。1、https://gallery.pyecharts.org/#/Page/page_simple_layout2、主要是3个类&#xff0c;Grid&#xff1a;并行多图&#xff0c;Page&#xff1a;顺序多图&#xff0c;Tab&#xff1a;…

linux文件管理器添加项目,LXQt 0.14 发布,文件管理器添加拆分视图

LXQt团队已经发布了他们的轻量级Qt5支持的Linux桌面环境的0.14.0版本。LXQt 0.14为PCManFM-Qt文件管理器添加了一个拆分视图&#xff0c;其桌面图标角色现在支持计算机/网络/垃圾箱图标&#xff0c;通过libfm-qt改进更有效地处理挂载&#xff0c;LXImage-Qt现在可以处理图像EXI…

这两天,我们还没毕业

这两天在桂林&#xff0c;见了很多几年没见面的同学&#xff0c;从毕业后到现在&#xff0c;应该是人数最多的一次聚会了&#xff0c;如果用两个字来形容这次聚会&#xff0c;那应该是 「满足」两字。满足于多年没有见面的老同学&#xff0c;从天南聊到地北&#xff0c;从球场聊…

python parser count_8个超实用的Python脚本,收藏备用

脚本写的好&#xff0c;下班下得早!程序员的日常工作除了编写程序代码&#xff0c;还不可避免地需要处理相关的测试和验证工作。例如&#xff0c;访问某个网站一直不通&#xff0c;需要确定此地址是否可访问&#xff0c;服务器返回什么&#xff0c;进而确定问题在于什么。完成这…

LCD 设备驱动框架分析及核心结构

Linux 下很多东西都是和结构体相关&#xff0c;举个例子&#xff0c;时钟大家都知道吧&#xff0c;Linux 下对应时钟的东西就有好几个结构体&#xff0c;所以你要是想明白Linux 下那些东西&#xff0c;对结构体要有所了解&#xff0c;LCD 是基础的驱动设备&#xff0c;里面涉及…

kafka 启动_Kafka管理工具Kafka Manager

Kafka作为分布式消息系统以其轻量级、可扩展、高通吐等特点而得到广泛应用&#xff0c;最近在项目中用Kafka作为中间件进行数据交互。为了监控Kafka的运行情况&#xff0c;在网上找了个开源的Kafka监控工具Kafka-manager对Kafka集群监控。为什么选用Kafka-manager而不是KafkaOf…

Linux背后的思想

01Linus TorvaldsLinus Torvalds两次改变了技术&#xff0c;第一次是Linux内核&#xff0c;它帮助互联网的发展&#xff1b;第二次是Git&#xff0c;全球开发者使用的源代码管理系统。在一次TED的采访中&#xff0c;Torvalds以极其开放的态度讨论了他独特的工作方式和性格特点。…

linux执行sh提示非标准环境,Linux执行.sh文件时提示No such file or directory该怎么办(三种解决办法)...

先给大家看下问题描述&#xff0c;下图是我在运行时出现错误截图&#xff1a;解决方法分析原因&#xff0c;可能因为我平台迁移碰到权限问题我们来进行权限转换1)在Windows下转换&#xff1a;利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换&#xff0c;再放到Linu…

你应该知道Linux内核softirq

说起这个softirq &#xff0c;很多人还是一头雾水&#xff0c;觉得这个是什么东西&#xff0c;跟tasklets 和 workqueue有什么不同。每次谈到这个&#xff0c;很多人&#xff0c;包括我&#xff0c;都是有点紧张&#xff0c;特别是面试的时候&#xff0c;因为你一旦说错了什么&…

linux 查看磁盘分区,文件系统,使用情况的命令和相关工具介绍,Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍...

Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍作者&#xff1a;北南南北来自&#xff1a;http://doc.xuehai.net提要&#xff1a;Linux 磁盘分区表、文件系统的查看、统计的工具很多&#xff0c;有些工具是多功能的&#xff0c;不仅仅是查看磁盘的分区表&#x…