面文章,实现了通过表单完成数据的录入,并写入数据库。接下来实现数据的修改和删除。
首先找到user_manager.html文件,增加修改和删除的按钮。
找到显示数据的表格<table>标签,在表头区域增加一列<th>操作</th>,然后在显示数据的for循环中增加一个<td></td>标签,在标签内增加两个连接<a>标签,href先设置为空,各增加一个class样式。如图所示:
刷新user_manager.html页面,如下图。现在按钮已经添加到前端页面。
接下来,完善删除功能。
先在views.py中建立一个删除的方法,如下。方法传入两个参数,一个request,一个需要删除行的id,使用User类的filter功能在数据库中查找数据,使用delete()方法删除数据,最后返回user_manager页面。
def user_delete(request,user_id):
User.objects.filter(id=user_id).delete()
return redirect("/user_manager/")
接下来增加路由,以在前端调用该方法删除数据。打开urls.py文件,新增加一个删除数据的路由。
在前端user_manager.html页面中,增加删除的href如下:
试验一下删除功能,打开user_manager.html页面,找到第一条数据,
点击删除按钮,第一条数据已被删除。
下篇笔记,将记录如何实现修改数据的功能。
本Pandas教程中,我们将详细介绍如何使用Pandas read_html方法从HTML中获取数据。首先,在最简单的示例中,我们将使用Pandas从一个字符串读取HTML。其次,我们将通过几个示例来使用Pandas read_html从Wikipedia表格中获取数据。在之前的一篇文章(关于Python中的探索性数据分析)中,我们也使用了Pandas从HTML表格中读取数据。
在开始学习Python和Pandas时,为了进行数据分析和可视化,我们通常从实践导入数据开始。在之前的文章中,我们已经了解到我们可以直接在Python中输入值(例如,从Python字典创建Pandas dataframe)。然而,通过从可用的源导入数据来获取数据当然更为常见。这通常是通过从CSV文件或Excel文件中读取数据来完成的。例如,要从一个.csv文件导入数据,我们可以使用Pandas read_csv方法。这里有一个如何使用该方法的快速的例子,但一定要查看有关该主题的博客文章以获得更多信息。
现在,上面的方法只有在我们已经有了合适格式的数据(如csv或JSON)时才有用(请参阅关于如何使用Python和Pandas解析JSON文件的文章)。
我们大多数人会使用Wikipedia来了解我们感兴趣的主题信息。此外,这些Wikipedia文章通常包含HTML表格。
要使用pandas在Python中获得这些表格,我们可以将其剪切并粘贴到一个电子表单中,然后,例如使用read_excel将它们读入Python。现在,这个任务当然可以用更少的步骤来完成:我们可以通过web抓取来对它进行自动化。一定要查看一下什么是web抓取。
当然,这个Pandas读取HTML教程将要求我们安装Pandas及其依赖项。例如,我们可以使用pip来安装Python包,比如Pandas,或者安装一个Python发行版(例如,Anaconda、ActivePython)。下面是如何使用pip安装Pandas: pip install pandas。
注意,如果出现消息说有一个更新版本的pip可用,请查看这篇有关如何升级pip的文章。注意,我们还需要安装lxml或BeautifulSoup4,当然,这些包也可以使用pip来安装: pip install lxml。
下面是如何使用Pandas read_html从HTML表格中抓取数据的最简单的语法:
现在我们已经知道了使用Pandas读取HTML表格的简单语法,接下来我们可以查看一些read_html示例。
第一个示例是关于如何使用Pandas read_html方法的,我们将从一个字符串读取HTML表格。
现在,我们得到的结果不是一个Pandas DataFrame,而是一个Python列表。也就是说,如果我们使用type函数,我们可以看到:
如果我们想得到该表格,我们可以使用列表的第一个索引(0)
在第二个Pandas read_html示例中,我们将从Wikipedia抓取数据。实际上,我们将得到蟒科蛇(也称为蟒蛇)的HTML表格。
现在,我们得到了一个包含7个表(len(df))的列表。如果我们去Wikipedia页面,我们可以看到第一个表是右边的那个。然而,在本例中,我们可能对第二个表更感兴趣。
在第三个示例中,我们将从瑞典的covid-19病例中读取HTML表。这里,我们将使用read_html方法的一些附加参数。具体来说,我们将使用match参数。在此之后,我们还需要清洗数据,最后,我们将进行一些简单的数据可视化操作。
如上图所示,该表格的标题为:“瑞典各郡新增COVID-19病例”。现在,我们可以使用match参数并将其作为一个字符串输入:
通过这种方式,我们只得到这个表,但它仍然是一个dataframes列表。现在,如上图所示,在底部,我们有三个需要删除的行。因此,我们要删除最后三行。
现在,我们将使用Pandas iloc删除最后3行。注意,我们使用-3作为第二个参数(请确保你查看了这个Panda iloc教程,以获得更多信息)。最后,我们还创建了这个dataframe的一个副本。
在下一节中,我们将学习如何将多索引列名更改为单个索引。
现在,我们要去掉多索引列。也就是说,我们将把2列索引(名称)变成唯一的列名。这里,我们将使用DataFrame.columns 和 DataFrame.columns,get_level_values:
最后,正如你在“date”列中所看到的,我们使用Pandas read_html从WikiPedia表格抓取了一些注释。接下来,我们将使用str.replace方法和一个正则表达式来删除它们:
现在,我们继续使用Pandas set_index将日期列变成索引。这样一来,我们稍后就可以很容易地创建一个时间序列图。
现在,为了能够绘制这个时间序列图,我们需要用0填充缺失的值,并将这些列的数据类型更改为numeric。这里我们也使用了apply方法。最后,我们使用cumsum方法来获得列中每个新值累加后的值:
在最后一个示例中,我们使用Pandas read_html获取我们抓取的数据,并创建了一个时间序列图。现在,我们还导入了matplotlib,这样我们就可以改变Pandas图例的标题的位置:
在这个Pandas教程中,我们学习了如何使用Pandas read_html方法从HTML中抓取数据。此外,我们使用来自一篇Wikipedia文章的数据来创建了一个时间序列图。最后,我们也可以通过参数index_col来使用Pandas read_html将' Date '列设置为索引列。
英文原文:https://www.marsja.se/how-to-use-pandas-read_html-to-scrape-data-from-html-tables
译者:一瞬
着WPS开始使用JS宏,我也开始尝试使用JavaScript(简称JS)在WPS表内进行自动化开发,实现一些小功能。今天的讲的是如何自动清除表格内容。
做表格自动化开发,例如统计等等,每次运行脚本都需要清除之前运行得出的内容,否则新旧结构挤在一起就出现混乱了,分不清那个是最新的结果,这里我以我正在做的的一个折旧计算器为例进行说明。
JS宏和VBA宏本质上都是一样的工具,只不过JS宏可以实现跨平台,但相关功能还没有VBA那么完善。以上的效果其实就是两行代码实现的。代码如下:
function catl(){
var urow=Application.Worksheets.Item("计算器").Range("A65535").End(xlUp).Row
Application.Worksheets.Item("计算器").Range("A5:D"+urow).Delete()
}
第一句,获得当前表格中A列用了多少行,由于我这个表格用的是前四列,用这个语句就可以制定用了多少行,第二句是清除前四列第四行以后的所有内容,也就是保留表头,表格其他部分。
金山在做WPS的JS相关接口的时候已经尽量向原来VBA的接口靠拢了,例如var urow=Application.Worksheets.Item("计算器").Range("A65535").End(xlUp).Row中的Application.Worksheets.部分和.Range("A65535").End(xlUp).Row部分几乎要就是VBA语句,只不过官方文档还不是很完善,这个End(xlUp)在文档中压根就没有提这个用法。是我自己试出来的。
我是且行且思,一个程序员/数据分析师/金山办公KVP,终身学习者,不定时和大家分享知识和好
*请认真填写需求信息,我们会在24小时内与您取得联系。