col

使用Python代码处理Excel

心不动则不痛 提交于 2019-12-02 06:56:31
使用Python操作Excel不是什么难事,需要用到两个Lib, python-xlrd,python-xlwt 安装 pip install xlrd xlwt 支持xls,xlsx格式 写Excel 创建一个文件 workbook = xlwt.Workbook(encoding='utf-8') 增加一个表单 booksheet = workbook.add_sheet('Sheet 1') 增加一行 row = booksheet.row(i) 增加一列 col = booksheet.col(j) 为某个单元格赋值 booksheet.write(i, j, 'Test') row.write(j, 'Test') col.write(i, 'Test') 注意: 在add_sheet时, 置参数cell_overwrite_ok=True, 可以覆盖原单元格中数据。 cell_overwrite_ok默认为False, 覆盖的话, 会抛出异常. import xlwt workbook = xlwt.Workbook(encoding='utf-8') booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True) workboot.add_sheet('Sheet 2') DATA = (('学号',

简单写入excel

自闭症网瘾萝莉.ら 提交于 2019-12-02 05:03:09
import pymysql,xlwt def to_excel(table_name): host, user, passwd, db = '127.0.0.1', 'root', '123', 'mytable' conn = pymysql.connect(user=user, host=host, port=3306, passwd=passwd, db=db, charset='utf8') cur = conn.cursor() # 建立游标 sql = 'select * from %s;' % table_name cur.execute(sql) # 执行mysql fields = [filed[0] for filed in cur.description] # 列表生成式,所有字段 print(fields) all_data = cur.fetchall() # 所有数据 #写excel book = xlwt.Workbook() # 先创建一个book sheet = book.add_sheet('sheet1') # 创建一个sheet表 # enumerate自动计算下标,将表头导入Excel for col, field in enumerate(fields): # 将表头写入第一行,col是列的索引,field字段名 sheet.write

(Update) Add index column to data.frame based on two columns

放肆的年华 提交于 2019-12-02 04:39:30
Example data.frame: df = read.table(text = 'colA colB 2 7 2 7 2 7 2 7 1 7 1 7 1 7 89 5 89 5 89 5 88 5 88 5 70 5 70 5 70 5 69 5 69 5 44 4 44 4 44 4 43 4 42 4 42 4 41 4 41 4 120 1 100 1', header = TRUE) I need to add an index col based on colA and colB where colB shows the exact number of rows to group but it can be duplicated. colB groups rows based on colA and colA -1 . Expected output: colA colB index_col 2 7 1 2 7 1 2 7 1 2 7 1 1 7 1 1 7 1 1 7 1 89 5 2 89 5 2 89 5 2 88 5 2 88 5 2 70 5 3 70 5 3 70 5 3 69 5 3 69 5 3 44 4 4 44 4 4 44 4 4 43 4 4 42 4 5 42 4 5 41 4 5 41 4 5 120 1 6 100 1 7 UPDATE

最大半连通子图

南笙酒味 提交于 2019-12-02 03:16:19
https://loj.ac/problem/10092 题目描述   给出一张图,定义图的半连通子图为点集S中任意两点u、v都存在一条u到v的简单路径或v到u的简单路径,求这张图的最大半连通子图的节点数和个数。 思路   首先显然一个强连通子图一定是半连通子图,所以我们可以先进行缩点,这样并不影响结果的判定。接下来考虑缩点后的DAG,最大半连通子图可以转化为DAG上最长链的长度,对于这个我们可以用类似最短路方法,不过由于是DAG我们可以直接进行拓扑排序时更新最短路的值,接下来再类似最短路计数用sum[i]记录到i的路径个数。   不过需要注意虽然原图中保证五重边,但缩点可能两个强连通分量间有多个有向边相连接,由于半连通子图时点集,与边无关,这会影响到最大半连通子图的计数,所以要去重。 代码 #include <bits/stdc++.h> using namespace std; const int N=1e5+10,M=1e6+10; struct Edge { int x,y; }e[M]; bool cmp(Edge a,Edge b) { if(a.x!=b.x)return a.x<b.x; else return a.y<b.y; } int head[N],nxt[M],to[M],tot; int n,m; void add_edge(int x,int y) {

操作excel表格

筅森魡賤 提交于 2019-12-02 02:28:26
import xlrdfrom xlutils.copy import copyclass OpraterExcel(): def __init__(self, file_path=None, sheet_index=None): if file_path == None: self.file_path = '../configdata/test.xlsx' else: self.file_path = file_path if sheet_index == None: self.sheet_index = 0 else: self.sheet_index = sheet_index self.sheet = self.load_file() def load_file(self): workbook = xlrd.open_workbook(self.file_path) sheet = workbook.sheet_by_index(self.sheet_index) return sheet def get_value(self,row,col): ''' 依据行列获取表格数据 :param row: :param col: :return: ''' return self.sheet.cell_value(rowx=row,colx=col) def write(self,

P5008 [yLOI2018] 锦鲤抄

无人久伴 提交于 2019-12-01 20:33:45
洛谷 题意: 给出一个有向图,每次可以删除存在入度的点及其出边,每次删除一个点可以获得其权值。 问最终能够获得的最大权值为多少。 思路: 考虑DAG:我们直接倒着拓扑序来选,即可将所有入度不为 \(0\) 的点选完。 若不为DAG,考虑 \(tarjan\) 求出强连通分量,分析可以发现:对于一个单独的强连通分量,假设其点数为 \(n\) ,那么可以选择 \(n-1\) 个点;若其入度不为 \(0\) ,那么强连通分量中所有点都可以选择。 然后直接这样来搞就行。 证明...我也不会,在纸上画画就行了。 #include <bits/stdc++.h> #define MP make_pair #define fi first #define se second #define sz(x) (int)(x).size() #define all(x) (x).begin(), (x).end() #define INF 0x3f3f3f3f // #define Local #ifdef Local #define dbg(args...) do { cout << #args << " -> "; err(args); } while (0) void err() { std::cout << '\n'; } template<typename T, typename...Args

1

风流意气都作罢 提交于 2019-12-01 18:29:00
第一个例子:创建一行( <div class="row"> )。然后, 添加是需要的列( .col-*-* 类中设置)。 第一个星号 (*) 表示响应的设备: sm, md, lg 或 xl, 第二个星号 (*) 表示一个数字, 同一行的数字相加为 12。 第二个例子: 不在每个 col 上添加数字,让 bootstrap 自动处理布局,同一行的每个列宽度相等: 两个 "col" ,每个就为 50% 的宽度。三个 "col" 每个就为 33.33% 的宽度,四个 "col" 每个就为 25% 的宽度,以此类推。同样,你可以使用 .col-sm|md|lg|xl 来设置列的响应规则。 <!-- 第一个例子:控制列的宽度及在不同的设备上如何显示 --> < div class = " row " > < div class = " col-*-* " > </ div > </ div > < div class = " row " > < div class = " col-*-* " > </ div > < div class = " col-*-* " > </ div > < div class = " col-*-* " > </ div > </ div > <!-- 第二个例子:或让 Bootstrap 者自动处理布局 --> < div class = " row "

道路和航线

自闭症网瘾萝莉.ら 提交于 2019-12-01 13:01:27
https://loj.ac/problem/10081 题目描述   一张图,有由T个节点,R条双向边和P条单向边组成,每条边有边权且可能存在负权,求能否从S到达每个节点并且输出最小花费。 思路   首先第一想法,把这张图建出来,在跑一遍spfa即可,然而它显然被卡了,不过似乎可以用双端队列优化水过去。   接下就是正解。我们考虑对于所有的道路,都是正权,我们可以用Dijkstra做,而对于航线,不存在环。因此,如果我们将道路相连的连通图缩点之后,得到必定是DAG,而DAG显然可以用拓扑排序更新最短路。   所以我们只需要先把双向边的图建出来,跑一遍tarjan缩点,再进行toposort,每次更新时把连通块中所有节点都加入Dijkstra的优先队列中,对于每个点进行更新dis数组。在进行Dijkstra时把单向边也更新一遍即可。 代码 #include<bits/stdc++.h> using namespace std; const int N=250020,M=1e5+10; const int INF=0x3f3f3f3f; int head[N],tot,to[M],nxt[M],w[M]; void add_edge(int x,int y,int z) //双向边建图 { nxt[++tot]=head[x]; head[x]=tot; to[tot]=y; w

【数字图像分析】基于Python实现 Canny Edge Detection(Canny 边缘检测算法)

白昼怎懂夜的黑 提交于 2019-12-01 09:36:32
import numpy as np import cv2 import argparse from Computer_Vision.Canny_Edge_Detection.sobel import sobel_edge_detection from Computer_Vision.Canny_Edge_Detection.gaussian_smoothing import gaussian_blur import matplotlib.pyplot as plt def non_max_suppression(gradient_magnitude, gradient_direction, verbose): image_row, image_col = gradient_magnitude.shape output = np.zeros(gradient_magnitude.shape) PI = 180 for row in range(1, image_row - 1): for col in range(1, image_col - 1): direction = gradient_direction[row, col] if (0 <= direction < PI / 8) or (15 * PI / 8 <= direction <= 2 * PI): before

mongodb更新操作

泄露秘密 提交于 2019-12-01 08:07:36
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。 update() 方法 update() 方法用于更新已存在的文档。语法格式如下: db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } ) 参数说明: query : update的查询条件,类似sql update查询内where后面的。 update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的 upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。 multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。 writeConcern :可选,抛出异常的级别。 实例 我们在集合 col 中插入如下数据: >db.col.insert({ title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http:/