pandas 数据类型研究(一)数据转换

 当利用pandas进行数据处理的时候,经常会遇到数据类型的问题,当拿到数据的时候,首先需要确定拿到的是正确类型的数据,一般通过数据类型的转化,这篇文章就介绍pandas里面的数据类型(datatypes也就是常用的dtyps),以及pandas与numpy之间的数据对应关系。  dataframe中的object类型来自于Numpy, 他描述了每一个元素在ndarray中的类型(也就是Object类型)。而每一个元素在ndarray中必须用同样大小的字节长度。比如int64float64,他们的长度都是固定的8字节。 但是对于string来说,string的长度是不固定的,所以pandas储存string时使用narray,每一个object是一个指针  我们以官网案例作为解析,这样可以省去很多时间。importpandasaspdimportnumpyasnpdf=pd.read_csv("https://github.com/chris1610/pbpython/blob/master/data/sales_d...

java数据结构5--集合Map

  Map与Collection在集合框架中属并列存在Map存储的是键值对<K,V>Map存储元素使用put方法,Collection使用add方法Map集合没有直接取出元素的方法,而是先转成Set集合,再通过迭代获取元素Map集合中键要保证唯一性(和HashSet一样,用hashcode和equals)此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get和put)提供稳定的性能。迭代collection视图所需的时间与HashMap实例的“容量”(桶的数量)及其大小(键-值映射关系数)成比例。所以,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。HashMap的实例有两个参数影响其性能:初始容量和加载因子。容量是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行rehash操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。通常,默认加载因子(.75)在时间和空间成本上寻求一...
代码星球 代码星球·2021-02-22

java数据结构4--集合Set

  Set接口用来表示:一个不包含“重复元素”的集合Set接口中并没有定义特殊的方法,其方法多数都和Collection接口相同。重复元素的理解:通常理解:拥有相同成员变量的对象称为相同的对象,如果它们出现在同一个集合中的话,称这个集合拥有重复的元素HashSet中对重复元素的理解:和通常意义上的理解不太一样!两个元素(对象)的hashCode返回值相同,并且equals返回值为true时(或者地址相同时),才称这两个元素是相同的。TreeSet中对重复元素的理解:元素的compareTo方法或者集合的比较器compare方法返回值为0则认为这两个元素是相同的元素。 1Set接口的方法可知Set接口并没有比父类Collection接口提供更多的新方法。线程不安全,存取速度快它的大多数方法都和Collection相同它不保证元素的迭代顺序;也不保证该顺序恒久不变当HashSet中的元素超过一定数量时,会发生元素的顺序重新分配。2.1HashSet构造方法publicHashSet(){map=newHashMap<>();}publicHashS...
代码星球 代码星球·2021-02-22

java数据结构3--List

1.1list接口的简介  1.2list实现子类ArrayList:线程不安全,查询速度快,底层用的是数组,增删慢LinkedList:线程不安全,链表结构,增删速度快,查询慢Vector:线程安全,但速度慢,已被ArrayList替代 1.3list的遍历方法   迭代器注意事项:迭代器在Collcection接口中是通用的迭代器的next方法返回值类型是Object,如果需要所以要记得类型转换。1.4练习1.使用ArrayList存储基本数据类型对象,并遍历2.使用ArrayList存储字符串对象,并遍历importjava.util.ArrayList;/**使用ArrayList存储基本数据类型对象,并遍历*/publicclassDemo1{publicstaticvoidmain(String[]args){//Colletion//ListArrayListlist=newArrayList();list.add(10);//此处发生的是自动装箱int-->Integer1.5list.add(true)...
代码星球 代码星球·2021-02-22

java数据结构2--集合总论

   0.1、为什么出现集合类?面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式(容器)Java中集合也是类,真正用来存储东西的是某种集合类的实例对象。0.2、集合类VS数组数组和集合类都是容器,有何不同?集合类的特点0.3、Collection接口概述Collection层次结构中的根接口。Collection表示一组对象,这些对象也称为collection的元素。一些collection允许有重复的元素,而另一些则不允许。   0.4接口中的方法添加操作booleanadd(Objecte)booleanaddAll(Collectionc)删除操作booleanremove(Objecto)booleanremoveAll(Collectionc)查询操作intsize()判断操作booleanisEmpty()booleancontains(Objectobj)booleancontainsAll(Collectionc)0.5、继承父类的方法-...

java数据结构--array与ArrayList的区别

 ArrayList 内部是由一个array 实现的。如果你知道array 和 ArrayList 的相似点和不同点,就可以选择什么时候用array或者使用ArrayList,array 提供O(1)的查找性能和很基本的方式去存储数据。ArrayList 是Java集合框架类的一员,可以称它为一个动态数组。array 是静态的,所以一个数据一旦创建就无法更改他的大小。所以,如果需要一个数组可以重新定义他的大小,你应该使用 ArrayList,这是array 和ArrayList的基本的不同。 不同点:通过一些点来比较两个不同的事情是最好的方式,这样会使大家容易理解他们的不同点。所以让我们来看看有哪些点能够让我们比较array 和ArrayList。1)Implementation(实现)array 是本地的程序设计组件或者数据结构,但是ArrayList是一个来自Java集合类的类,一个接口(Applicationprogramminginterf...

java数据结构1--数组、排序和Arrays工具类

数组的定义数组的内存结构数组定义常见问题数组常见操作Java参数传递问题--值传递二维数组1.数组概念同一种类型数据的集合,可以是基本数据类型,也可以是引用数据类型。数组的特点:数组存储的都是相同数据类型的元素(相同数据类型)数组的长度也就是数组中元素的个数(固定长度)元素从0开始编号,编号也称“索引”:index(下标,角标)(从零开始)数组中元素的访问方式是通过数组名+索引的方式:arr[1](索引访问) 数组的定义格式 2.数组的初始化初始化方式1:动态初始化:数组的创建和元素的赋值分开进行格式:元素类型[]数组名=new元素类型[数组长度];int[]arr=newint[3]; 初始化方式2:静态初始化:数组创建时就给数组元素赋值格式:元素类型[]数组名=new元素类型[]{元素1,元素2,…};int[]arr=newint[]{2,0,3,1};静态初始化的简化写法int[]arr={2,0,3,1};直接打印数组类型的变量,会发现结果是一段看不懂的字符串,这就是引用数据类型变量的特点,它实际上代表的是一段内存空间的十六进制表示形式.真正的数...

js获取当前时间的年月日时分秒以及时间的格式化

1.获取当前时间varmyDate=newDate();2.获取时间中的年月日时分秒myDate.getYear();//获取当前年份(2位)myDate.getFullYear();//获取完整的年份(4位,1970-????)myDate.getMonth();//获取当前月份(0-11,0代表1月)myDate.getDate();//获取当前日(1-31)myDate.getDay();//获取当前星期X(0-6,0代表星期天)myDate.getTime();//获取当前时间(从1970.1.1开始的毫秒数)myDate.getHours();//获取当前小时数(0-23)myDate.getMinutes();//获取当前分钟数(0-59)myDate.getSeconds();//获取当前秒数(0-59)myDate.getMilliseconds();//获取当前毫秒数(0-999)myDate.toLocaleDateString();//获取当前日期varmytime=myDate.toLocaleTimeString();//获取当前时间myDate.toLoca...

vue中组件之间的引用

header.vue<template><div>我是公共组件头部</div></template>footer.vue<template><div>我是公共组件底部</div></template>index.vue<template><div><v-header></v-header><div>我是主页面</div><v-footer></v-footer></div></template><script> importheaderfrom'../../components/header.vue' importfooterfrom'../../components/footer.vue' exportdefault{  data(){   return{   }  },  com...
代码星球 代码星球·2021-02-22

[09] 环绕通知和切入表达式

通过环绕通知,可以实现前置通知、后置通知等等可以实现的功能。在类型为环绕通知的切面程序函数中,参数则不再是JoinPoint,而是ProceddingJoinPoint,它是JoinPoint的子类,进行了扩展,提供了proceed()函数,该函数的作用是调用目标组件,并返回目标组件返回的值。publicvoiddoAround(ProceedingJoinPointpoint){System.out.println("目标组件运行的前置通知");try{Objectobj=point.proceed();System.out.println("目标组件的返回通知");}catch(Throwablethrowable){System.out.println("执行异常处理程序");}System.out.println("最终执行程序");} 1publicvoiddoAround(ProceedingJoinPointpoint){2  System.out.println("目标组件运行的前置通知");3  try{4 ...

[05] EL表达式

cookie用来获取cookie的值:${cookie.JSESSIONID.value}initParam用来获取上下文参数的值:${initParam.path}<context-param><param-name>path</param-name><param-value>/WEB-INF/props</param-value></context-param> 1<context-param>2  <param-name>path</param-name>3  <param-value>/WEB-INF/props</param-value>4</context-param>EL中提供.和[]两种操作符号来获得数据,如下面两行代码效果等同:${requestScope.cust2.custname}${requestScope["cust2"]["custname"]}但在以下情况,只能使...
代码星球 代码星球·2021-02-21

集合与数组,集合与集合之间的转换

看几个常用的集合类,如上图继承关系图,可以看到他们都集成了一个抽象类AbstractCollection,这个类中就实现了Collection接口的两个方法:toArray()toArray(T[]a) 前者的返回值是一个Object的数组,Object[],这个数组是不可以进行强制数据类型转换的,如下:List<Integer>pod=newArrayList<Integer>();for(inti=0;i<5;i++){  pod.add(i);}Integer[]t=(Integer[])pod.toArray();7 1List<Integer>pod=newArrayList<Integer>();23for(inti=0;i<5;i++){4  pod.add(i);5}67Integer[]t=(Integer[])pod.toArray();结果就是报错:java.lang.ClassCastException:[Ljava.lang.Object;cannotbecastto[Ljava....
代码星球 代码星球·2021-02-21

03标准对象-02-RegExp 正则表达式

用一种描述性的语言来给字符串定义一个规则,你可以形象地理解正则表达式是一个“框”,凡是符合大小形状条件的字符串,都算是“匹配“了。JS中有两种方式定义正则表达式:通过/正则表达式/写出来;通过newRegExp('正则表达式')创建RegExp对象varre1=/ABC-001/;varre2=newRegExp('ABC\-001');//这里的两个\因为转义,实际上是一个re1;///ABC-001/re2;///ABC-001/5 1varre1=/ABC-001/;2varre2=newRegExp('ABC\-001'); //这里的两个\因为转义,实际上是一个34re1;///ABC-001/5re2;///ABC-001///正常的切分代码:无法识别连续的空格'abc'.split('');//['a','b','','','c']//正则表达式切分代码:无论空格数量都可以正常分割'abc'.split(/s+/);//['a','b','c']-->匹配至少一个空格//即使有逗号,也可以试试'a,b,cd'.split(/[s,]+/);//[...
首页上一页...7891011...下一页尾页