pivot

Python基础 | pandas中dataframe的整合与形变(merge & reshape)

[亡魂溺海] 提交于 2020-04-06 03:36:29
目录 行的union pd.concat df.append 列的join pd.concat pd.merge df.join 行列转置 pivot stack & unstack melt 本文示例数据下载 ,密码: vwy3 import pandas as pd # 数据是之前在cnblog上抓取的部分文章信息 df = pd.read_csv('./data/SQL测试用数据_20200325.csv',encoding='utf-8') # 为了后续演示,抽样生成两个数据集 df1 = df.sample(n=500,random_state=123) df2 = df.sample(n=600,random_state=234) # 保证有较多的交集 # 比例抽样是有顺序的,不加random_state,那么两个数据集是一样的 行的union pandas 官方教程 pd.concat pd.concat 主要参数说明: 要合并的dataframe,可以用 [] 进行包裹,e.g. [df1,df2,df3] ; axis =0,axis是拼接的方向,0代表行,1代表列,不过很少用pd.concat来做列的join join ='outer' ignore_index : bool = False,看是否需要重置index 如果要达到 union all 的效果

大厂面试:如何用快排思想在O(n)内查找第K大元素?

走远了吗. 提交于 2020-04-05 19:58:56
上一片文章我们学习冒泡排序、插入排序、选择排序这三种排序算法(点击文末链接查看),它们的时间复杂度都是 O(n2),比较高,适合小规模数据的排序。今天,我们学习时间复杂度为 O(nlogn) 的排序算法, 归并排序 和 快速排序 。这两种排序算法适合大规模的数据排序,比上篇文章学习的那三种排序算法要更常用。 归并排序 归并排序的核心思想还是蛮简单的。如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。 归并排序使用的就是 分治思想 。分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。小的子问题解决了,大问题也就解决了。 分治算法一般都是用 递归 来实现的。分治是一种解决问题的处理思想,递归是一种编程技巧,这两者并不冲突。 这里要 重点明说 下写递归代码的技巧就是,分析得出 递推公式 ,然后找到 终止条件 ,最后将递推公式翻译成递归代码。所以,要想写出归并排序的代码,我们先写出归并排序的递推公式。 递推公式: merge_sort(p…r) = merge(merge_sort(p…q), merge_sort(q+1…r)) 终止条件: p >= r 不用再继续分解 刚学的朋友可能理解会有点困难,这里做个解释: merge_sort(p…r) 表示,给下标从 p 到 r 之间的数组排序

Need T-SQL help for converting Rows from multiple tables into Columns with values in Sql Server 2005

半世苍凉 提交于 2020-03-26 17:00:20
问题 I have a table tblUser: tblUser and a table tblBCE and data in the given below: tblBCE and a master table mstBCE which contains label text to display in front end application. This table contains data for other tab also but currently i want only for tabType 'BCE',I will do for other tab myself once i got the concept. mstBCE There is no relation between tblBCE and mstBCE tables,we need to follow the top to bottom sequence only. In front end application i display these data only by sequence i.e

快速排序

微笑、不失礼 提交于 2020-03-25 11:24:06
3 月,跳不动了?>>> 第一种方式: function qSort(arr) { //声明并初始化左边的数组和右边的数组 var left = [], right = [] //使用数组最后一个元素作为基准值 var base = arr[arr.length - 1] //当数组长度只有1或者为空时,直接返回数组,不需要排序 if(arr.length <= 1) return arr //进行遍历 for(var i = 0, len = arr.length; i < len - 1; i++) { if(arr[i] <= base) { //如果小于基准值,push到左边的数组 left.push(arr[i]) } else { //如果大于基准值,push到右边的数组 right.push(arr[i]) } } //递归并且合并数组元素 return [...qSort(left), ...[base], ...qSort(right)] } const arr = [2, 4, 1, 5, 3, 1] const s = qSort(arr) console.log(s) // [1, 1, 2, 3, 4, 5] 第二种方式 ar quickSort = function(arr) { if (arr.length <= 1) { return arr; }

How to convert one column's all values to separate column name in DataFrame of Pandas

自作多情 提交于 2020-03-05 12:22:11
问题 Sample data are as follows: df = pd.DataFrame([(2011, 'a', 1.3), (2012, 'a', 1.4), (2013, 'a', 1.6), (2011, 'b', 0.7), (2012, 'b', 0.9), (2013, 'b', 1.2),], columns=['year', 'district', 'price']) df.set_index(['year'], inplace=True) df.head(n=10) which could produce data like: district price year 2011 a 1.3 2012 a 1.4 2013 a 1.6 2011 b 0.7 2012 b 0.9 2013 b 1.2 What I intend to convert the DataFrame to is as below: a b year 2011 1.3 0.7 2012 1.4 0.9 2013 1.6 1.2 Could anyone give me some idea

Converting 200+ rows to column in SQL Server using PIVOT

我怕爱的太早我们不能终老 提交于 2020-03-05 00:52:51
问题 I have done some research and so far, this one makes sense to me: Convert row value in to column in SQL server (PIVOT) However, I am wondering if there is any way to do this without having to declare the needed columns one by one, as I have more than 200 columns to retrieve. Here's a sneak peek of what I have as a table: ID | Col_Name | Col_Value ------------------------------ 1 | Item_Num | 12345 2 | Item_Date | 34567 3 | Item_Name | 97454 4 | Item_App1 | 234567 5 | Item_App2 | 345678 Take

十大排序算法(Java实现)

删除回忆录丶 提交于 2020-02-28 05:06:57
一、冒泡排序(Bubble Sort) 基础版 /** * 遍历数组,依次比较相邻的元素并交换,每次都将最大元素(根据正序还是逆序决定)放到数组末尾 * @param arr 待排序数组 * @return */ public static int[] bubbleSort(int[] arr) { int temp; for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } return arr; } 优化一 //冒泡排序:优化一 public static int[] bubbleSort1(int[] arr) { int temp; //记录数组是否有序 boolean isSorted; for (int i = 0; i < arr.length - 1; i++) { isSorted = true; for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j +

轻松应对ASP.NET界面开发,DevExpress TreeList v19.2功能增强

青春壹個敷衍的年華 提交于 2020-02-27 11:01:52
DevExpress ASP.NET Controls 中的控件具有优良的性能和高效的内存使用,且能保证其性能和功能不受影响。无论使用 ASP.NET AJAX 还是 ASP.NET MVC 作为编程目标,DevExpress ASP.NET Controls 中所提供控件和扩展程序都可帮助您创建卓越的业务解决方案,用于再现 Microsoft Outlook的外观、感觉和功能,并在满足终端用户对Web 应用程序提出的要求的前提下保持最高的性能标准。 DevExpress ASP.NET Controls v19.2增强了Pivot Grid、TreeList、VerticalGrid等控件功能,欢迎下载最新版体验! DevExpress ASP.NET v19.2正式版下载 Pivot Grid 任何级别的聚合 此版本包含了针对WinForms、WPF和ASP.NET的优化Pivot Grid计算引擎,这个新引擎提供更通用的摘要表达功能,该功能的范围是未绑定字段。Aggr函数针对一组特定的维度使用特定的Summary函数汇总数据,可以根据需要嵌套Aggr函数(您可以在Pivot Grid控件中轻松创建所需的聚合级别)。 Aggr函数具有以下语法: Aggr(summaryExpression,dimension1,dimension2,...)

算法之排序(中)

爱⌒轻易说出口 提交于 2020-02-26 10:56:09
文章来源: http://blog.seclibs.com/算法之排序中/ 上一篇文章说了时间复杂度为O(n2)的冒泡、插入和选择三个排序方式,它们只适合在数据规模比较小的时候,接下来要说的是两个时间复杂度为 O(nlogn) 的算法, 归并排序 和 快速排序 ,它们比较适合在大规模数据的时候使用,相比于前面的三个算法就更加常用。 首先来看 归并排序 (Merge Sort) 归并排序的操作还是比较简单的,它是将数组从中间分割为前后两部分,然后再将每一部分分割,直到分割到不能分为止,然后将数值两两排序合并,不断合并到最初的数组,就完成了排序的操作,它的示例图是这样的 归并排序使用的是分治思想,分而治之,也就是将大问题不断的分解,分解成一个个小问题,小问题都解决了,那大问题也就都解决了,这个跟前面说的递归是特别像的,分治是一种处理问题的思想,递归是具体的技巧,分治算法一般都是用递归来实现的。 既然是使用递归来实现的,那我们就要找到它的通用递归公式和递归终止条件,首先我们假设第一个数值用p表示,最后一个数值用r表示,既然要将数组从中间分割,那每次分割的下标就为q=(p+r)/2,即数组就分为了两段(p,q)和(q+1,r)。 那递归终止条件又该怎么定义?我们来看什么时候是我们需要截至的,当数组分解成单个字符的时候就停止了,那这个时候开始结束符号将一致,所以只需要在p>=r时结束就可以了

Python数据处理小技巧:pivot_table后如何拍平columns

可紊 提交于 2020-02-26 04:20:11
机器学习的过程中很多时候需要用到类似透视表的功能。Pandas提供了pivot和pivot_table实现透视表功能。相对比而言,pivot_table更加强大,在实现透视表的时候可以进行聚类等操作。 pivot_table帮助地址: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html 官方给的几个例子: >>> df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo", ... "bar", "bar", "bar", "bar"], ... "B": ["one", "one", "one", "two", "two", ... "one", "one", "two", "two"], ... "C": ["small", "large", "large", "small", ... "small", "large", "small", "small", ... "large"], ... "D": [1, 2, 2, 3, 3, 4, 5, 6, 7], ... "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]}) >>> df A B C D E 0 foo one small 1 2