四校名额分配,哪些区成大赢家?16区数据分析出炉!

 

16号发布的上海中考综评录取实施细则,到今天为止,家长们的讨论还热浪滚滚。在将各种信息咀嚼一遍后,大家需要的信息聚焦在四方面:
1.四校的名额分配,本区可以获取多少?
2.区属市重点高中,本区到底有几所?
3.各区初中,到底能获多少到校名额
4.阳光普照,哪些区获益最多?
 
现在我们就来解决大家的疑惑。看一下四校名额分配。

 

四校名额分配,16区分布

 

四校名额分配,先来复习几个关键要点:

 

1.四校名额分配,占四校招生名额总数的65%

 

2.四校到校名额为20%,也就是65%X20%.四校到区名额是80%,就是65%X80%.

 

3.四校到区名额分配原则是,按各区考生数占比全市考生数。详看下面这张图,理解会更清晰。

 

四校名额分配,哪些区成大赢家?16区数据分析出炉!

 

复习完总的分配原则。那我们就来看看上海16区,能分到多少四校名额。下表以各区的2020年一模考生数为依据。

四校名额分配,哪些区成大赢家?16区数据分析出炉!

人数多的区占据头牌,浦东/闵行/宝山列在前排。

 

再看一下分到区与分到校,各是多少?

 

四校名额分配,哪些区成大赢家?16区数据分析出炉!

浦东因为考生规模大,因此获得的四校名额分配也最多。宝山与闵行大踏步跟在后。

 

绝对数量多,并不能反应任何问题。首先,我们要与往年比较一下,看看增减,才真正知道:哪些区受到的阳光普照程度高?

 

四校名额分配,哪些区成大赢家?16区数据分析出炉!
松江,奉贤,金山,宝山,青浦,嘉定,崇明这些郊区的增长最猛。相应地,大家一直涌入的教育强区,徐汇与杨浦的名额减少最多。
 
因此,可想而知,郊区与市区的教育资源,今后将更均衡。
 
以前以徐汇与杨浦强区为领头羊,一尘绝后。郊区成了教育洼地。家长们的梦想是,去市区,去教育强区。这个政策后,这种冲动会灰飞烟灭。
 
教育均衡不是一句空话
郊区教育会越来越强,将成必然。名额分配政策出来后,极大利好郊区,极大利好教育弱区。
看完了四校的名额分配的数据后,我们再看看区属市重点的情况。
 

盘点16区区属市重点

先来看大家最为关心的,16区的区级市重点有哪些。

 

四校名额分配,哪些区成大赢家?16区数据分析出炉!

 

里面有几个特殊的学校,打了红框。这几个学校都是市重点的分校,与多个区都有关联。到底算哪个区的,目前还没消息,后面应该会有官方信息出来。
 
让大家比较惊讶的还是,郊区发展太猛。宝山猛然间,区属市重点就与市区教育强区的市重点学校,相差不大
确定了各区的市级重点中学后,每个初中最低的到校名额就确定了。政策的精神是,区级市重点,全覆盖。

四校名额分配,哪些区成大赢家?16区数据分析出炉!

各区的名额分配到校,市重点率就自然出来了。

 

四校名额分配,哪些区成大赢家?16区数据分析出炉!

 

黄浦将有近三分之一的人,会以名额分配,挺进市重点。而郊区的青浦却出人意料,进入TOP5。只能说青浦这几年教育发展太猛。

 

但是,数量并不表示质量。根据每年高考综评中各自的表现,按能力分为四档。因些,就得出了下面这张表。

四校名额分配,哪些区成大赢家?16区数据分析出炉!

 

那么最后一个问题是,具体到每个区的每个学校能分到多少个呢?

 

明天起,我们会逐一发布。不过心急的,可以点二维码进群,获取升学信息更及时!

 

最后总结:

1.名额分配打乱原有的格局,让强者不恒强,弱者不恒弱

2.让每一个孩子,每一个家庭,都不会因进错学校而绝望 。

3.机会均等地分给了每个学校,每个孩子。最终凭实力胜出。

4.越是郊区,越是弱校,这次享受的阳光普照越是强烈。

转自:https://mp.weixin.qq.com/s/33YsMdoCjEv56U6LWtsCBQ

上海新中考名额分配落地!市重点名额,惠及全市每所初中!

 

2021年3月16日上海出台了有关中招录取的有关措施与办法。朋友圈,家长群里,很多家长疾呼:

 

“中考又出新政策了?中考又改革了?怎么中考老在改革?”

 

其实大家过虑了。这不是新政策,这只是2018年开始的新中考政策的一部份,是延续,是细则补充。

 

在带着大家看今天发布的这个政策前,我们先来对2018年开始启程的,波澜壮阔的新中考改革的大框架,进行一个快速回顾与梳理。因为今天发布的所有政策细节,都是在整个新中考的大框架里进行的。

 

回顾一:

上海新中考改革的三方面措施

 

2018年3月22日,上海教委官微发布了新中考的一系列改革实施意见,新中考正式开始。

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

在这个实施意见里,最重要的新中考改革措施是三条。

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

这三条,我们可以简约记为:

 

1.中考计分科目增加,总分从630分变为750分。

经过三年洗礼,每个初中家长对此条,都烂熟于心

 

2.完善综合素质评价制度

同样地,6-8年级的学生每期末都在填写综评表格,对此也耳熟能详

 

3.招生录取办法有改动。从原来的五种改为三种。其中最大的变动是推行了:名额分配综合评价录取。

 

大家对此最为陌生,也疑惑最大。

 

因为对这块,当时只给了框架,但没给出详细的解释与具体的操作方法。而今天出台的政策就是针对招生录取方式的细化

 

回顾二:新中考的招生录取办法

 

2018年,对新中考的招生录取办法,有一个大的框架。首先看官方的图示。

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

 

再看官方发布的表格:

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

 

当时看完这个表格与图示,大家对自主招生与统一招生录取(大家俗称裸考)这两块,没有任何的疑问。但是对名额分配综合评价录取,特别是分配到校的名额,充满了疑惑:
1.“名额分配70%不选择生源的每所初中学校”
哪些是不挑生源的初中?
从2020开始摇号,民办不再挑生源,有没有资格去获得分配到校的名额?
2.“名额分配70%到不选择生源的每所初中学校
按什么规则分配?
我家孩子的学校,到底可以分几个名额,来自哪些高中?
接下来,不谈自招和裸考(比例未定等官宣),只针对名额分配,一一给出解答。

 

名额分配,谁有资格?

 

名额分配,有名额分配到与名额分配到两块。

 

分配到:16区每所初中都能争取;

分配到:只分给不挑生源的初中。

 

2018与2019年,一些民办初中当时挑选了生源,因此就没有名额分配到校的资格。

 

也就是,选择生源的民办初中2022届和2023届应届毕业生(目前在读7年级与8年级),不能参加名额分配到校招生录取。

 

2020年起,上海小升初统一实行民办超额摇号的政策,不再有挑生源的学校。因此每一所初中,原则上,都将享有名额分配到校的资格。

 

也就是:今年在读6年级及以后的初中生,无论公办民办,原则上,未来中考都能享受名额分配到校的资格

 

总结一下:

 

1.每所初中的每个学生,都可以争取名额分配到区的资格。

 

2.选择生源的民办初中2022届和2023届应届毕业生目前在读的7年级与8年级,不能参加名额分配到校招生录取不享有名额分配到校的资格(这一条在2018年中考改革大方案公布时就已经说过了)

 

3.从2024届应届初中毕业生(目前在读六年级)开始,原则上都可参加当年度的名额分配到校招生录取。

 

所有高中名额,如何分配?

 

名额分配综评,将市实验性示范性高中(俗称的“市重点高中”)划分为两大类,大框架如下:

 

一、委属市重点高中:主要指上中,华二,交附,复附,这4所学校是委属学校,不属于任何区,是市里直接管理。

 

二、区属市重点高中:这一块与大家习惯性认知略有不同。它包含:位于各区的四校分校,以及各区市重点学校。(后面的文章,我们会列出各区的区属市重点)

 

我们一个个板块看过去:
 

委属市重点:四校

 

委属市重点:主要指上中,华二,交附,复附。

 

正是吃瓜群众最关心的:四校。

 

四校名额分配比例,已经确定:65%!

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

 

分配的办法是:

 

名额分配到区:80%(实质上是,65%里的80%)

名额分配到校:20%(实质上是,65%里的20%)

 

看下面官方示意图。

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

 

为了便于理解,我们亲手来算算。四校每所学校每年招生人数,通常在300-400人区间。为了好统计,方便计算,我们简单假设为每校招生400人,名额分配计划测算如下。

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

总结一下:

 

1.四个委属市重点高中,名额分配的比例确定是65%。

 

2.按各区考生占全市考生的比例,四校的名额分配计划分配到各区。各区再分别按名额到区(占四校在该区名额分配计划的80%,详见上图),与名额到校(占四校在该区名额分配计划的20%,详见上图)进行分配。

 

但是不管怎样,四校招生人数还是太有限,而上海的初中却很多。塔尖风景固然美妙,只是极少数人,才可以攀登得到。

我们把目光投向第二类学校:各区属市重点(四校分校也在此列)

区属市重点,如何分配?

 

区属市重点:学校多,招生规模大,这才是大家最可能触碰,并收入囊中的好学校。
 
除了四校外,大家关心的四校分校,以及各区的市重点,都在这个行列。
 
首先,区属市重点会给出多少占比的名额分配计划?
 
我们看一下官方的这张图。
 
重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!
和四校确定65%的占比不同,区属市重点给出一个名额分配的占比区间(具体比例等当年公布):50%-65%
 
再分为两块。一块分配到区,一块分配到校。
分配到区:30%(90-95%分配给外区,5-10%分配给本区)
分配到校:70%

为了直观感受,我们来动手亲自算一算。名额分配在50%-65%区间,我们假设它为60%,具体每年公布。模型测算为以下:

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

我们着重来看分配到校的这一块。
 
政策强调了一个词:全覆盖。

 

保证各区每所市重点高中,各分配至少一个名额,到区内每所初中。

 

比如:如果本区有4个市重点,每个市重点高中,到校名额超出区内不挑生源的初中数量,则需要给本区每所初中,至少分配1个:

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

 

余下的名额,按各初中报名中考的学生数占全区的考生总数比例,来进行分配。

 

以前大家担心,有的初中人数多,而有的初中人少,怕分配不合理。而按比例进行分配,则解决了这个问题。

 

如果到校名额小于区内不挑生源的初中数量,则“以均衡、随机为原则分配到不挑生源的初中”。(小编个人理解为:摇号/抽签形式)

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

 

总结一下:

 

1.区属市重点,包含各区市重点+四校在本区的分校

 

2.分配到区的名额也不少,这块考生都要关注。

   分配到校的名额非常多,这块一定要努力争取!

 

3.区属市重点,分配到本区每所初中的名额,保证至少1个。

 

大家牢牢记住一句话:区属市重点分配到校,实现“全覆盖”

 

不管初中学校规模,一定能获得本区每个区属市重点,至少一个名额的机会。如果本区有4个区属市重点,到校名额均超过不挑生源初中数,那么就可获得至少4个区属市重点名额到校的计划。

 

4.总体上,可以说,全上海每个区,任何一个初中,原则上都将有:委属四校名额的可能+本区每所区属重点(至少1个)的名额,这对一些普通初中来说,拿到的录取名额,含金量突突上升了一个level。

 

继续引入,新的问题:

各初中都拿到了名额,在学校内部,每个孩子该怎么争取呢?
虽然名额分配,是阳光普照,但学生要想获取这些名额,要想被最终录取,靠的就是:真实力。

 

如何录取呢?看一下这张图表。

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

 

一共是800分(不含政策加分)。750分,是中考计分科目。50分,是高中学校基于综评档案,进行综合考查的成绩。(这里我们暂不考虑政策加分)

 

先根据中考成绩,按1:2比例入围。如果招生60人,则让120人入围高中综合考查,得出综合考查的分数。

 

中考记分科目的成绩+综合考查成绩,得出学生的总成绩。按名额分配到区或名额分配到校,进行相应排序,相应录取。

 

总结一下:

 

1.名额分配的录取分数,总分是800分,包含中考计分的750分,以及高中综合考查的50分。政策加分这里暂且不谈。

 

2.先中考,根据中考分数按1:2入围高中综合考查。

 

3.把中考计分科目的分数+高中综合考查分数相加,得出最终分数。

 

4.到区名额,在区里排序录取。到校名额,在校内排序录取。

 

名校或家门口学校?

 

中考是最牛的指挥棒之一。当新中考录取的方式变了,家长们的升学规划必然发生改变。
回看新中考的三项措施:
1.中考计分科目的考试形式丰富了,总分从630分变为750分(中考计分科目的变化从2021年就开始了)
解析:初中计分科目中设置了:理化试验操作,英语听说考试等等,学生需全方位学习,增强知识应用能力。
2.完善综合素质评价制度。
解析: 未来每个初中毕业生,都将有一份初中学生综合素质评价报告,包罗万象,是4年学习的缩影,是自招和名额分配的重要参考。
3. 招生录取办法有改动。出台了最硬核的改革措施:
市重点名额分配到校,实现“全覆盖”、
覆盖区内每所不挑生源的初中!
所以在新中考政策出来后,才有了这样一句:
小升初千里迢迢,去名校做分母,何不就近上学?

 

有家长在微博上说了这样一句:

 

重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

 

曾向望高不可攀的一流民办初中,
转回头,才发现家门口的公办,机会多多。
转回头,才明白原来不焦虑,家门口也有好学校上!
想必,这个政策出来后,为不断降温的民办学校热,再次浇下一盆冷水。家门口的公办,则被加了一把火,腾腾热了起来。
 
当市重点的大部份名额,分配到初中学校,当阳光普照后,又何必花大代价,争取那几个顶尖初中?
 
当然,这样会让某些人想钻空子。学在民办,考在公办。这个政策有很多措施把这个BUG堵上。
 
政策规定,不在毕业学校读满3年的学生,是没有名额分配到校机会的。
那么在家门口学校的朋友们,就一定能躺赢吗?
 
错!
 
千变万变,努力学习从来没有变。在相对薄弱校,拼名额容易,但获取了名额,并不保证录取,因此,初中学校和学生都要努力,才能美梦成真!
因为名额分配综评录取,是有最低控分线的。
 
达不到控分线,哪怕你是校排第一,拿到了到校名额,最后也不能被录取。
新中考的背景下,你不用费尽心思,千里迢迢择校。就在家门口,你的未来也是机会无限,光明一片。
 
就在家门口,也能挺进四校八大。
你不用再择校,但你必须更努力。
机会均衡分给了每个学校每个人,
抓不抓得住,就看你努力不努力。
 
你努力的方向,不只是闷头刷题。
而要能力与综合素质一起上。
 
这,就是新中考新政的核心!
也是我们家庭在教育与升学规划方面的方向!
重磅!上海新中考名额分配落地!市重点名额,惠及全市每所初中!

转自:https://mp.weixin.qq.com/s/7VayZZkhXreo7ZoO1UnngQ

可能是全网最完整的 Python 操作 Excel库总结!

来自公众号:早起Python

在之前的办公自动化系列文章中,我已经对Python操作Excel的几个常用库openpyxlxlrd/xlwtxlwingsxlsxwriter等进行了详细的讲解。

为了进一步带大家了解各个库的异同,从而在不同场景下可以灵活使用,本文将横向比较7个可以操作 Excel 文件的常用模块,在比较各模块常用操作的同时进行巩固学习!

首先让我们来整体把握下不同库的特点

  1. xlrdxlwtxlutils 各自的功能都有局限性,但三者互为补充,覆盖了Excel文件尤其是 .xls 文件的操作。xlwt 可以生成 .xls 文件,xlrd 可以读取已经存在的 .xls 文件,xlutils 连接 xlrdxlwt 两个模块,使用户可以同时读写一个 .xls 文件。简单来说,xlrd 负责读、xlwt 负责写、xlutils 负责提供辅助和衔接
  2. xlwings 能够非常方便的读写 Excel 文件中的数据,并且能够进行单元格格式的修改
  3. XlsxWriter 是一个用来写 .xlsx 文件格式的模块。它可以用来写文本、数字、公式并支持单元格格式化、图片、图表、文档配置、自动过滤等特性。但不能用来读取和修改 Excel 文件
  4. openpyxl 通过 工作簿 “workbook – 工作表 sheet – 单元格 cell” 的模式对 .xlsx 文件进行读、写、改,并且可以调整样式
  5. pandas 大家都不陌生,是进行数据处理和分析的强大模块,有时也可以用来自动化处理Excel

如果你懒得看详细的对比过程,可以直接看最后的总结图,然后拉到文末收藏点赞就算学会了

可能是全网最完整的 Python 操作 Excel库总结!

一、安装

7个模块均为非标准库,因此都需要在命令行中 pip 进行安装:

pip install xlrd
pip install xlwt
pip install xlutils
pip install xlwings
pip install XlsxWriter
pip install openpyxl
pip install pandas

二、模块导入

多数模块可以直接通过名字导入,有些模块约定俗称会使用缩写:

import xlrd
import xlwt
import xlwings as xw
import xlsxwriter
import openpyxl
import pandas as pd

xlutils 模块是 xlrdxlwt 之间的桥梁,最核心的作用是拷贝一份通过 xlrd 读取到内存中的 .xls 对象,然后再拷贝对象上通过 xlwt 修改 .xls 表格的内容。xlutils 可以将 xlrd 的 Book 对象复制转换为 xlwt 的Workbook 对象,具体使用时通常导入的是模块中的 copy 子模块:

import xlutils.copy

三、读取 Excel 文件

3.1 获取文件

并不是所有7个模块都可以读取 Excel 文件,而即使能读取Excel文件也要分不同后缀名进行讨论,具体如下:

  1. xlwtxlutilsXlsxWriter 不能读取文件
  2. xlrd 可以读取 .xls.xlsx 文件
  3. xlwings 可以读取 .xls.xlsx 文件
  4. openpyxl 可以读取 .xlsx 文件
  5. pandas 可以读取 .xls.xlsx 文件

下面使用两个大小均为 10MB 的 .xls.xlsx 文件进行测试:

xls_path = r'C:xxxDesktoptest.xls'
xlsx_path = r'C:xxxDesktoptest.xlsx'

3.1.1 xlrd 读取文件

xlrd 可以读取 .xls.xlsx 文件

xls = xlrd.open_workbook(xls_path)
xlsx = xlrd.open_workbook(xlsx_path)

3.1.2 xlwings 读取文件

xlwings 直接对接的是 apps,也就是 Excel 应用程序,然后才是工作簿 books 和工作表 sheets,xlwings 需要安装有 Excel 应用程序的环境xlwings 可以读取 .xls.xlsx 文件

app = xw.App(visible=True, add_book=False# 程序可见,只打开不新建工作薄
app.display_alerts = False # 警告关闭
app.screen_updating = False # 屏幕更新关闭
# wb = app.books.open(xls_path)
wb = app.books.open(xlsx_path)
wb.save() # 保存文件
wb.close() # 关闭文件
app.quit() # 关闭程序

3.1.3 openpyxl 读取文件

openpyxl 可以读取 .xlsx 文件

wb = openpyxl.load_workbook(xlsx_path)

如果读取 .xls 文件会报错:

wb = openpyxl.load_workbook(xls_path)

openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.

3.1.4 pandas 读取文件

pandas 可以读取 .xls.xlsx 文件

xls = pd.read_excel(xls_path, sheet_name='Sheet1')
xlsx = pd.read_excel(xlsx_path, sheet_name='Sheet1')

接下来比较四个模块在同一配置电脑下读取 10MB .xlsx 文件的时间(运行3次求平均值),所用代码为:

import time
import xxx

time_start = time.time()
xxx
time_end = time.time()
print('time cost: ', time_end-time_start, 's')

最后测试的结果是,xlwings 读取 10MB 文件最快,xlrd 次之,openpyxl 最慢(因电脑而异,结果仅供参考)

读入 Excel 文件部分的表格总结如下:可能是全网最完整的 Python 操作 Excel库总结!

3.2 获取工作表

针对上述4个可以读取 Excel 文件的模块,进一步讨论其获取工作表 sheet 的方式

3.2.1 xlrd 获取工作表

可以通过 sheet 名查找:

sheet = xlsx.sheet_by_name("Sheet1")

也可通过索引查找:

sheet = xlsx.sheet_by_index(0)

3.2.2 xlwings 获取工作表

xlwings 的工作表分为活动工作表以及指定工作簿下的特定工作表:

sheet = xw.sheets.active  # 在活动工作簿
sheet = wb.sheets.active  # 在特定工作簿

3.2.3 openpyxl 获取工作表

.active 方法默认获取工作簿的第一张工作表

sheet = wb.active

另外也可以通过工作表名指定获取工作表:

sheet = wb['Sheet1']

3.2.4 pandas 获取工作表

单独获取工作表完全没有 pandas 什么事情,因为读取文件的同时已经且必须指定工作表才能读取:

xlsx = pd.read_excel(xlsx_path, sheet_name='Sheet1')

四、创建 Excel 文件

简单总结创建 Excel 文件的情况:

  1. xlrdxlutils 不能创建 Excel 文件
  2. xlwt 只能创建 .xls 文件,不能创建 .xlsx 文件
  3. xlwings可以创建 .xls.xlsx 文件
  4. XlsxWriter 可以创建 .xlsx 文件
  5. openpyxl 可以创建 .xls.xlsx 文件
  6. pandas 没有创建 Excel 的概念,但可以存储时产生 .xls.xlsx 文件

4.1 xlwt 创建文件

xlwt 只能创建 .xls 文件,不能创建 .xlsx 文件

xls = xlwt.Workbook(encoding= 'ascii')
# 创建新的sheet表
worksheet = xls.add_sheet("Sheet1")

4.2 xlwings 创建文件

xlwings可以创建 .xls.xlsx 文件,只需要最后保存时写清楚后缀即可。使用如下命令:

wb = app.books.add()

无论是新建还是打开都需要保存工作簿、关闭工作簿、关闭程序,即:

wb.save(path + r'new_practice.xlsx') 
wb.close() 
app.quit() 

4.3. XlsxWriter 创建文件

XlsxWriter 可以创建 .xlsx 文件:

xlsx = xlsxwriter.Workbook()   
# 添加工作表
sheet = xlsx .add_worksheet('Sheet1')

4.4 openpyxl 创建文件

openpyxl可以创建 .xls.xlsx 文件,只需要最后保存时写清楚后缀即可。使用如下命令:

wb = Workbook()
# 新工作簿中指定即创建工作表
sheet = wb.active

4.5. pandas 创建文件

pandas 只需要最后转存时写清楚后缀即可。实际上比较抽象,pandas 并不需要一开始先创建一个 Excel 文件,可以围绕数据框做各式操作后用 .to_excel 命令再用 .xls 或者 .xlsx 做文件后缀。如果一定要产生一个空白 Excel 文件可以用如下命令:

df = pd.DataFrame([])
df.to_excel(r'C:xxxtest1.xlsx')

五、保存文件

简单总结保存 Excel 文件的情况:

  1. xlrd 不能保存 Excel 文件
  2. xlwt 可以保存 .xls 文件
  3. xlutils 可以将 xlrd 对象复制为 xlwt 对象后保存 .xls 文件
  4. xlwings可以保存 .xls.xlsx 文件
  5. XlsxWriter 可以保存 .xlsx 文件
  6. openpyxl 可以保存 .xlsx 文件
  7. pandas 可以保存 .xls.xlsx 文件

5.1 xlwt 保存文件

xlwt 可以保存 .xls 文件

# xls = xlwt.Workbook(encoding= 'ascii')
# worksheet = xls.add_sheet("Sheet1")
xls.save("new_table.xls")

5.2 xlutils 保存文件

xlutils 可以将 xlrd 对象复制为 xlwt 对象后保存 .xls 文件

# xls_path = r'C:xxxxtest.xls'
# xls = xlrd.open_workbook(xls_path)
xls_xlutils = xlutils.copy.copy(xls)
xls_xlutils.save('new_text.xls')

5.3 xlwings 保存文件

xlwings可以保存 .xls.xlsx 文件

# wb = app.books.open(xls_path)
wb = app.books.open(xlsx_path)
wb.save() # 保存文件
wb.close() # 关闭文件
app.quit() # 关闭程序

5.4 XlsxWriter 保存文件

XlsxWriter 可以保存 .xlsx 文件,.close 命令执行后文件关闭的同时保存:

# xlsx = xlsxwriter.Workbook()
# sheet = xlsx .add_worksheet('Sheet1')
xlsx.close()

5.5 openoyxl 保存文件

openpyxl 可以保存 .xlsx 文件

# wb = openpyxl.load_workbook(xlsx_path)
# wb = Workbook()
# sheet = wb.active
wb.save('new_test.xlsx')

6. pandas 保存文件

pandas 可以保存 .xls.xlsx 文件

df1 = pd.DataFrame([123])
df2 = pd.DataFrame([124])
df1.to_excel(r'C:xxxxtest1.xls')
df2.to_excel(r'C:xxxxtest2.xlsx')

六、获取单元格的值

获取单元格的值基本前提是能够读取文件,因此基本围绕 xlrdxlwingsopenpyxlpandas 介绍。xlutils 由于能够复制一份 .xls 因此也可以使用和 xlrd 完全一样的读取单元格方法。

6.1. xlrd/xlutils 获取单元格

xlutils 因为是直接拷贝一份 xlrd 适用的对象,读取单元格使用的方法和 xlrd 完全一样。xlwt 没有读取单元格的能力

# xls = xlrd.open_workbook(xls_path)
# sheet = xlsx.sheet_by_name("Sheet1")
value = sheet.cell_value(46# 第5行第7列的单元格
print(value)
rows = table.row_values(4)
cols = table.col_values(6)
for cell in rows:
    print(cell)

6.2. xlwings 获取单元格

# app = xw.App(visible=True, add_book=False) 
# app.display_alerts = False 
# app.screen_updating = False 
# wb = app.books.open(xls_path)
# sheet = wb.sheets.active

# 获取单个单元格的值
A1 = sheet.range('A1').value
print(A1)
# 获取横向或纵向多个单元格的值,返回列表
A1_A3 = sheet.range('A1:A3').value
print(A1_A3)
# 获取给定范围内多个单元格的值,返回嵌套列表,按行为列表
A1_C4 = sheet.range('A1:C4').value
print(A1_C4)
# 获取单个单元格的值
A1 = sheet.range('A1').value
print(A1)
# 获取横向或纵向多个单元格的值,返回列表
A1_A3 = sheet.range('A1:A3').value
print(A1_A3)
# 获取给定范围内多个单元格的值,返回嵌套列表,按行为列表
A1_C4 = sheet.range('A1:C4').value
print(A1_C4)

6.3 openpyxl 获取单元格

# wb = openpyxl.load_workbook(xlsx_path)
# wb = Workbook()
# sheet = wb.active

# 一、指定坐标范围的值
cells = sheet['A1:B5']
# 二、指定列的值
cells = sheet['A']
cells = sheet['A:C']
# 三、指定行的值
cells = sheet[5]
cells = sheet[5:7]
# 获取单元格的值
for cell in cells:
    print(cell.value)

6.4 pandas 获取单元格的值

pandas 读取 Excel 文件后即将它转换为数据框对象,解析内容的方法基本是 pandas 体系中的知识点,如 .iloc() .loc() .ix() 等:

print(df1.iloc[0:1, [1]])
print(df1.loc['b'])
print(df2.ix['a''a']) # 有些版本取消了ix,可以用iat

七、写入数据

还是先简单总结对 Excel 文件写入数据的情况:

  1. xlrd 不能写入数据
  2. xlwt 可以写入数据
  3. xlutils 可以借用 xlwt 方法写入数据
  4. xlwings可以写入数据
  5. XlsxWriter 可以写入数据
  6. openpyxl 可以写入数据
  7. pandas 将 Excel 文件读取为数据框后,是抽象出数据框层面进行操作,没有了对 Excel 进行单元格写入和修改的概念

7.1. xlwt/xlutils 写入数据

# xls = xlrd.open_workbook(xls_path)
# xls_xlutils = xlutils.copy.copy(xls)
# sheet = xls_xlutils.sheet_by_name("Sheet1")
# value = sheet.cell_value(4, 6)
# print(value)
sheet.write(46"新内容")

7.2 xlwings 写入数据

# app = xw.App(visible=True, add_book=False) 
# app.display_alerts = False 
# app.screen_updating = False 
# wb = app.books.open(xls_path)
# sheet = wb.sheets.active

# 写入 1 个单元格
sheet.range('A2').value = '大明'
# 一行或一列写入多个单元格
# 横向写入A1:C1
sheet.range('A1').value = [1,2,3]
# 纵向写入A1:A3
sheet.range('A1').options(transpose=True).value = [1,2,3]
# 写入范围内多个单元格
sheet.range('A1').options(expand='table').value = [[1,2,3], [4,5,6]]

7.3 XlsxWriter 写入数据

代码中的 new_format 是之前预设好的样式,下文会进行介绍

# xlsx = xlsxwriter.Workbook()
# sheet = xlsx .add_worksheet('Sheet1')

# 一、写入单个单元格
sheet.write(row, col, data, new_format)
# A1:从A1单元格开始插入数据,按行插入
sheet.write_row('A1', data, new_format)
# A1:从A1单元格开始插入数据,按列插入
sheet.write_column('A1', data, new_format)

7.4. openpyxl 写入数据

# wb = openpyxl.load_workbook(xlsx_path)
# wb = Workbook()
# sheet = wb.active

# 一、写入单元格
cell = sheet['A1']
cell.value = '业务需求'
# 二、写入一行或多行数据
data1 = [123]
sheet.append(data1)
data2 = [[123], [456]]
sheet.append(data2)

八、样式调整

依旧简单总结对 Excel 文件样式调整的情况:

  1. xlrdxlutils 不能调整样式 (也可以说 xlutils 可以,只不过是借用了 xlwt 的方法)
  2. xlwt 可以调整样式
  3. xlwings可以调整样式
  4. XlsxWriter 可以调整样式
  5. openpyxl 可以调整样式
  6. pandas 不能调整样式

8.1 xlwt 调整样式

xlwt 支持调整字体、边框、颜色等样式

# 字体部分
# 初始化样式
style1 = xlwt.XFStyle()
# 为样式创建字体
font = xlwt.Font()
font.name = 'Times New Roman'   #字体
font.bold = True                #加粗
font.underline = True           #下划线
font.italic = True              #斜体
# 设置样式
style1.font = font
# 使用样式
sheet.write(46"新内容1", style1)

# 边框部分
borders = xlwt.Borders()
# 设置线型
borders.left = xlwt.Borders.DASHED
borders.right = xlwt.Borders.DASHED
borders.top = xlwt.Borders.DASHED
borders.bottom = xlwt.Borders.DASHED
# 设置样色
borders.left_colour = 0x40
borders.right_colour = 0x40
borders.top_colour = 0x40
borders.bottom_colour = 0x40

style2 = xlwt.XFStyle()
style2.borders = borders
# 使用样式
sheet.write(58"新内容2", style2)

8.2 xlwings 调整样式

简单介绍 xlwings 对颜色的调整:

# 获取颜色
print(sheet.range('C1').color)
# 设置颜色
sheet.range('C1').color = (2550120)
# 清除颜色
sheet.range('C1').color = None

8.3 XlsxWriter 调整样式

XlsxWriter 包含大量功能,可以创建工作表后对工作表进行高定自定义的样式修改:

new_format = xlsx.add_format({
        'bold':  True,  # 字体加粗
        'border'1,  # 单元格边框宽度
        'align''left',  # 水平对齐方式
        'valign''vcenter',  # 垂直对齐方式
        'fg_color''#F4B084',  # 单元格背景颜色
        'text_wrap'True  # 是否自动换行
    })

sheet.write(row, col, data, new_format)

8.4 openpyxl 调整样式

openpyxl 样式主要包括字体、边框、段落对齐样式等

# 字体样式
from openpyxl.styles import Font 
cell = sheet['A1'] 
font = Font(name='Arial', size=12, bold=True, italic=True, color='FF0000') 
cell.font = font

# 段落对齐
from openpyxl.styles import Alignment 
cell = sheet['B2'] 
alignment = Alignment(horizontal='center', vertical='center',                     text_rotation=45, wrap_text=True) 
cell.alignment = alignment 

# 边框样式
from openpyxl.styles import Side, Border 
cell = sheet['B2'] 
side1 = Side(style='thin', color='FF0000') 
side2 = Side(style='dashed') 
border = Border(left=side1, right=side1, top=side2, bottom=side2) 
cell.border = border

九、插入图片

简单总结对 Excel 文件插入图片的情况:

  1. xlrdxlutils 不能调整样式 (也可以说 xlutils 可以,只不过是借用了 xlwt 的方法)
  2. xlwt 可以插入 .bmp 图片
  3. xlwings可以插入 图片
  4. XlsxWriter 可以插入图片
  5. openpyxl 可以插入图片
  6. pandas 不能插入图片

9.1 xlwt 插入图片

xlwt 插入图片要求图片格式必须是 .bmp 格式才能插入成功

sheet.insert_bitmap("test.bmp"23220.50.5)

insert_bitmap(img, x, y, x1, y1, scale_x, scale_y)img 表示要插入的图像地址,x 表示行,y 表示列x1 y1 表示相对原来位置向下向右偏移的像素scale_x scale_y表示相对原图宽高的比例,图片可放大缩小

9.2 xlwings 插入图片

下面是用xlwings 插入图片的代码,可以指定位置

sheet.pictures.add(r'C:\xxx.jpg')
# 也可以给定位置插入
sheet.pictures.add(r'C:\xxx.jpg', left=sheet.range('A2').left, top=sheet.range('A2').top, width=100, height=100)

9.3 XlsxWriter 插入图片

第一个参数是插入的起始单元格,第二个参数是图片文件的绝对路径

sheet.insert_image('A1'r'C:\xxx.jpg')

9.4 openpyxl 插入图片

openpyxl也可以给Excel中插入指定图片并修改大小

from openpyxl.drawing.image import Image
img = Image('test.jpg')
newsize = (180360) 
img.width, img.height = newsize # 设置图片的宽和高
sheet.add_image(img, 'A2'# 往A2单元格插入图片

小结

以上就是根据不同 Python 模块,对常见的 Excel 操作进行对比的全部内容,最终结果汇总如下表所示

可能是全网最完整的 Python 操作 Excel库总结!

请注意,本文目的并不是要评出一个最好的库,仅是从不同角度对不同库进行对比,希望能够让大家了解各个库所擅长的工作。比如pandas虽然处理方便,但是不能添加图片修改样式,openpyxl虽然各种操作都支持,但是速度又相对慢一点等。

只有充分了解不同工具的特点,才能够在不同的场景下灵活运用不同的方法来高效解决问题!如果喜欢本文的话,希望你可以给本文点个赞来支持早起创作!

推荐↓↓↓

可能是全网最完整的 Python 操作 Excel库总结!

人工智能与大数据技术

仓位如何分配,你会吗?

有位大师曾说过,散户最大的问题不是不专业,而是总觉得自己该赚到所有的钱,所以和被套相比,散户更难接受的是踏空。
 
我的建议是中长线仓可以挺住不动,最近这波看似跌的多,本质上也就是阶段行情而已,对于中长线而言完全没必要出来,至于短线仓尽量别过半,留好现金,把钱花在刀刃儿上。
有人可能不知道短中长线仓怎么分配,我打个样儿,假设有50万,可以大致这么分:
短线仓:上限30万(六成),现阶段最多15万(一成半);
中线仓:上限10万(两成),现阶段最多10万(两成);
长线仓:上限10万(两成),现阶段最多10万(两成);
这个策略不仅规定了你每类持仓占账户的上限,还规定了当前账户的总仓位上限,也就是说现在最多七成仓,留三成现金,踏踏实实的,别乱买。
记住,分配仓位要按短中长划分,很多人以为不要把鸡蛋放在一个篮子里指的是多买几支股票,其实完全不是,你买五支短线股在本质上和买一支没有任何区别,根本做不到分散风险。
短线看形态,中长看质地,长线看赛道,你持仓股票的出发点不同,它们在同样的行情下也会表现出不同的走势,能在一定程度上抵消风险。
 
如果资金不到50万呢?
大家的习惯是资金越小越搞短线,以为这样才有赚大钱的机会,其实不是,资金越小越应该增加中长线持仓比重。
做短线是靠自己的交易水平赚钱,各位都扪心自问一下,自己的水平是什么水平,做中长线是赚趋势的钱,赚通胀的钱,赚时代的钱,你需要付出的只有时间。
比如你有10万,最好是买定三支优质股票或者优质基金,调低回报预期,长期持有,做时间的朋友,也做上市公司或者基金经理的朋友。
 
连10万都没有怎么办?
建议存余额宝,然后努力工作,你努力工作获得的边际回报绝对远远高于你这折腾这几万块钱。
 
假如净值有7、8甚至9位数呢?
那就更应该加大中长线持仓比重,既然问出这种问题,说明你不谙投资之道,少倒腾就是对自己资产的最大尊重。
 
转自:https://mp.weixin.qq.com/s/ZiCLkuFC1ZeAQ3GwhCQc7A
 

恶性循环,要来了

美联储“千年难遇的大放水”狂奔,它所造成的恶性循环也正在急速赶来……

 

 

 

1

 

 

 

最近有一个惊人的统计:“2020年疫情危机后印的钞,已经超过了2008年以前5000年的累计印钞总量!”

 

没有无耻,只有更无耻,2020达到了登峰造极的地步。

 

这会造成什么样的恶果呢?

 

大通胀!

 

虽然,耶伦和鲍威尔一直念叨着,“别慌!通胀不足为虑”,但是个明白人都能预感到2020年这场千年大放水后,世界总会有个什么凶险在等着。

 

最后,总要有人扛这个代价。

 

就像上游大坝炸开了,洪水泛滥一样,地势高的发达国家尚且可以不用担心短时间内被淹着,地势低的下游产业国和资源国可就要赶快高筑堤坝,否则货币洪峰流过非伤即残。

 

复盘1920-2020年美国货币和通胀的指数的相关性,1995年之前,每一次大放水几乎都必然带来美国通胀危机的拉升;有意思的是到了1995年之后,虽然放水变本加厉,但美国的通胀大多数时间都是趴在地上的。

 

如下图:

恶性循环,要来了 | 米筐原创

 

是不是很奇怪?

 

是老美变老实了吗?鬼才信。

 

是疯狂印钞跟跟通胀没有任何关系了吗?必然不是,如果是的话委内瑞拉,津巴布韦这些国家应该是世界最牛逼的国家。

 

通胀本质上是XX正确,大国其实已经悄悄管控了。起码在CPI这个符号上不会有太过分的表现。

 

因为通胀就是民生。

 

而且对于拥有强势货币的大国,通胀是可以向外输出的,至于怎么输出,这跟一个国家的产业链和金融货币地位紧密相连。

 

美元弱周期的时候,也就是类似于2020年超级大放水阶段,弱美元和低利率会把美联储放出的水赶往世界各地的商品,大家会看到股市涨,原油涨,粮食涨,工业原材料都在涨。

 

这个属于放水”养猪”阶段,哪个国家资本项目大门洞开,就是资本恶狼贪婪玩耍的理想国。

 

等到美元开始进入强势周期,美元升值+加息的预期,会给全球已经涨上天的资产价格进行“抽梯子“的操作。

 

那些工业基础薄弱,资本项目管制一团糟的国家,最后收获只有一地鸡毛。

 

下图是泰国1997-1998年金融风暴的低点,除了自己作死大搞金融开放以外,“美元资本狼群“回流的“抽梯子效应”也是其中的重要原因。

 

恶性循环,要来了 | 米筐原创

 

2020年大放水后,国际热钱都把谁炒上了天呢?

 

比特币涨了近10倍。

 

恶性循环,要来了 | 米筐原创

 

美国纳斯达克依然在历史新高附近。

 

恶性循环,要来了 | 米筐原创

 

澳大利亚普通股股指历史新高。

 

恶性循环,要来了 | 米筐原创

 

越南胡志明股票指数历史性高。

 

 

恶性循环,要来了 | 米筐原创

 

除此之外,中国深圳、广州、上海、杭州、合肥等热点城市的房价,还有美国重点城市的房价都不同程度的出现了明显的上涨。

 

如下图全美房价指数,在美联储放水之后,出现了明显的拉升。

 

恶性循环,要来了 | 米筐原创

 

全球范围内的疯狂上涨已经发生了,如果这些美丽的泡泡没有最终的硬产业收入接住,那么国际热钱“抽梯子”的痛就必然无法避免。

 

会很疼。

 

 

 

2

 

 

 

大通胀有多恐怖?

 

作为大通胀里挨打的经验老手,委内瑞拉,2020年的通胀率是4000%!2018年通胀率最高曾达到过48760%。

 

当时总统大气的宣布,国民平均工资至少要上涨30倍,但大家看了看几百倍的通胀率后,无奈的两手一摊:“F**K !又大降薪了。”

 

2020年初你辛辛苦苦存到银行的3000块钱,到了年底就贬成3块了,搁到2018年年初你存进去3000块,到了年底,去菜市场买东西,可能连个菜毛毛都买不到。

 

如下图委内瑞拉2018年通货膨胀率。

 

胀的有点吓人。

 

恶性循环,要来了 | 米筐原创

 

另外长期作为委内瑞拉难兄难弟的津巴布韦,2020年的通胀率为134%。

 

恶性循环,要来了 | 米筐原创

 

通胀面前,新兴市场国家开始行动了。

 

巴西、土耳其之后 ,俄罗斯央行也加息了,将基准利率上调至4.50%,预估为4.25%。

 

恶性循环,要来了 | 米筐原创

 

有用吗?

 

被迫的加息,会伤害到国内经济的复苏进程,最终还是输家。

 

实实在在得背锅侠。

 

大家可以想一下,当全世界都在高喊“万物暴涨”的时候,有没有人进一步的说明大通胀究竟是谁的美酒,谁的毒药呢?

 

金融立国,能源和粮食都是净出口的美国确实有底气说:“老子不怕通胀”,但对于那些没有金融优势,生活物品粮食能源又靠进口的中小国,该是个什么狼狈不堪的样子呢?

 

承担成本这件事情,谁付出代价,谁最知道肉疼的滋味。

 

 

 

3

 

 

 

享受放水的快乐,却不承受恶性通胀的代价,这是所有印钞的政客们最大的梦想。

 

说白了,就是享受印钞的“铸币税”,却让别人承担代价。

 

但大多数国家有这梦,没这命。

 

2020年千年难遇的大放水之后,一个大通胀的恶果正在进行秘密的甩锅,印出的钞票进入大宗商品,全球商品就飞涨了;印的钱进入楼市,于是全球的楼市就开始继续赶顶;印的钱进入各种生活物资,于是亿万老百姓的生活成本就驴打滚的往上猛窜。

 

货币泛滥,亦是一场实实在在的民生灾难。

 

为什么1995年之后老美几乎没有大通胀呢?

 

除了像委内瑞拉,津巴布韦这些小国承担了一部分之外,最大一部分都被中国这个世界经济中枢给承担了。

 

中国作为全球制造业的枢纽,一边连着全球各种资源和原材料,一边用勤劳的双手供给着最低廉的低价生活物资。

 

这是一个每天受夹板气的处境,每次国际大放水,原材料价格的成本需要中国来扛,但终端欧美市场低端生活品的价格我们却没有定价权,甚至很多时候只是赚一点点代加工的费用。

 

另外,2008年之后全球性的大放水,中国楼市也成了一个巨大的蓄水池,十几年的时间里,中国楼市总市值已经接近350万亿!

 

这是一个恶性循环,欧美印钞者不用担心你泡沫破裂之后的成本,相反但凡中国楼市有任何风吹草动,没有国家信仰的资本,就会第一时间寻找美元的避风港不会有半点留恋。

 

跑的比兔子还快。

 

这也是本轮中国央行没有跟进欧美进行大规模放水的原因,而是替代性的选用了给中央财政加杠杆的形式。

 

如下图:在2020年,中美两国央行政策开始分叉,美联储央行资产负债表大幅度超越了中国央行资产负债规模。

 

恶性循环,要来了 | 米筐原创

 

货币端我们没有跟随欧美,但为了对冲2020年疫情对经济的冲击,中央财政的杠杆明显上升。

 

2020年末国债余额(含一般债和专项债)和非政府债券形式的政府存量债是全年GDP的46%,上升了7.2个百分点,上升幅度明显加大。(备注:2019年相对与2018年仅仅上升了2.2个点)

 

2020年政府杠杆上升的速度是2019年的3倍还多!!

 

毋庸置疑我们的楼市是目前最大的灰犀牛,也是美国最最希望我们打开的超级货币蓄水池。但这次我们选择了“冻房”,直接斩断流动性,因为谁都知道十几年全球性大放水开出的泡沫之花,是蜜糖,也是毒药。

 

我们目前只能小心意义的压制它的毒性发作,期待产业的创新与升级,用实实在在的干货(收入+利润)把空心的泡沫慢慢填实。

 

按照某些国家的既定设计,中房这个大泡沫最终的使命就是要爆的,结果万万没想到被我们给截胡了,这是出乎它们意料的。

 

中房在2020年的这轮放水中,并没有失控的肆意膨胀,深圳,广州,上海,合肥等城市的躁动,依然还在掌控范围之内,头部城市的涨,是规律,也只是高收入者加杠杆的表现。

 

现在,最最需要担心的是,千万不要走到鼓励让穷人加杠杆的陷阱。

 

这是一条万劫不复的邪路。

 

也是我们最大的软肋。

 

恶性循环,要来了 | 米筐原创

 

最近禁止网贷的毒手伸向大学,以及北京深圳上海对于经营贷的严查等等行动,都是在防止最危险的事情出现。

 

因为决定一个经济大盘稳固程度的,往往是弱点和短板,就像2008年美国的次贷危机一样,最先爆的是那群信用差的弱者。

 

 

 

4

 

 

 

几乎肉眼可见,这次印钞机已经飙出了“千年难遇”的气势。

 

而且全球一体化的时代,一少部分国家享受了印钞的福利之后,必然有人要承受相应的代价和成本。

 

虽然,中国央行在这次货币放水中选择了不跟,也采取了如打压房地产,大规模进口粮食和能源等一系列对冲世界大通胀的相关措施,但伴随着国际大宗商品和原材料价格的暴涨,我们同样面临着复杂而严峻的输入型通胀压力。

 

比如,国际铁矿石价格涨上天了,我们国内房价,汽车,零部件要不要涨?比如美国的小麦,玉米价格暴涨,我们的粮食价格涨不涨呢?还有我们每年大量进口的大豆,原油等大宗商品,其实都已经先涨为敬。

 

美元、欧元这种世界货币,自然可以在全球买买买,狠狠地搜刮收割一把,但大多数不是世界货币的国家,尤其是普通民众,不仅要遭受世界货币的掠夺,还要默默承受通胀的抢劫。

 

怎么办?

 

恶性循环,要来了 | 米筐原创

 

最近我们看到央行开始稳步放开境内个人在5万美元额度内的境外投资。这也是一种对中国输入型通胀压力的对冲,既然印出来的欧元、美元都在世界各地买买买,我们也面临着被动通胀的压力,那么这个时候我们富裕的外汇纸币又有什么理由不出去买一些优质资产对冲呢?

 

按照这样的趋势,笔者猜想,未来几年新一轮跨国并购潮可能已经箭在弦上,唯有纸币换优质资产可能才是对冲通胀的利剑。

 

光被动挨揍,是不行的。

 

【全文完】

转自:https://mp.weixin.qq.com/s/Dayic3v5U60m5kB5NaAcfQ