pandas包

  # 引入包

  import pandas as pd

  import numpy as np

  import matplotlib.pyplot as plt

  Series

  Series 是一维带标签的数组,数组里可以放任意的数据(整数,浮点数,字符串,Python Object)。其基本的创建函数是:

  s = pd.Series(data, index=index)

  其中 index 是一个列表,用来作为数据的标签。data 可以是不同的数据类型:

  Python 字典

  ndarray 对象

  一个标量值,如 5

  Series创建

  s = pd.Series([1,3,5,np.nan,6,8])

  Series日期创建

  # 生成日期 从2013-01-01 生成至 2013-01-06

  dates = pd.date_range('20130101', periods=6)

  # DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04','2013-01-05', '2013-01-06'], dtype='datetime64[ns]', freq='D')

  Series创建列表

  # 生成2列 第一列: 012345678910 第二列: abbcdabacad

  s = pd.Series(list('abbcdabacad'))

  # 统计不同的列名

  s.unique()

  # 统计列名出现的次数

  s.value_counts()

  # 判断第一列是否在列表中

  s.isin(['a', 'b', 'c'])

  Series索引

  # 两列一列abcde 一列5个随机数

  s = pd.Series(np.random.rand(5), index=list('abcde'))

  # s的列名(第一列),是Index对象

  s.index

  # 添加一行 alpha

  s.index.name = 'alpha'

  # 返回所有第一列为'a'的值

  s['a']

  # 是否有重复的index

  s.index.is_unique

  # 返回不重复index

  s.index.unique()

  # 按index分组,求出每组和

  s.groupby(s.index).sum()

  DataFrame

  DataFrame 是二维带行标签和列标签的数组。可以把 DataFrame 想你成一个 Excel 表格或一个 SQL 数据库的表格,还可以相像成是一个 Series 对象字典。它是 Pandas 里最常用的数据结构。

  DataFrame创建

  df = pd.DataFrame(np.random.randn(4, 6), index=list('ADFH'), columns=['one', 'two', 'three', 'four', 'five', 'six'])

  # 添加index 如果该index没有对应值设为NaN

  df2 = df.reindex(index=list('ABCDEFGH'))

  # 重新设置col(行头)

  df.reindex(columns=['one', 'three', 'five', 'seven'])

  # 把NaN值设为默认的0

  df.reindex(columns=['one', 'three', 'five', 'seven'], fill_value=0)

  # fill method 只对行有效

  df.reindex(columns=['one', 'three', 'five', 'seven'], method='ffill')

  # 重置列index

  df.reindex(index=list('ABCDEFGH'), method='ffill')

  DataFrame操作

  df = pd.DataFrame(np.random.randn(4, 6), index=list('ADFH'), columns=['one', 'two', 'three', 'four', 'five', 'six'])

  # 所有index 为'A' col 为'one'的位置的值设置为100

  df.loc['A']['one'] = 100

  # 舍弃index 为'A'的行

  df.drop('A')

  # 舍弃columns 为 'two' 'four'的列

  df2 = df.drop(['two', 'four'], axis=1)

  # 数据拷贝

  df.iloc[0, 0] = 100

  # 获取index 为'one'的行

  df.loc['one']

  DataFrame计算郑州人流手术多少钱 http://mobile.chnk120.com/

  df = pd.DataFrame(np.arange(12).reshape(4, 3), index=['one', 'two', 'three', 'four'], columns=list('ABC'))

  # 每一列作为一个 Series 作为参数传递给 lambda 函数

  df.apply(lambda x: x.max() - x.min())

  # 每一行作为一个 Series 作为参数传递给 lambda 函数

  df.apply(lambda x: x.max() - x.min(), axis=1)

  # 返回多个值组成的 Series

  def min_max(x):

  return pd.Series([x.min(), x.max()], index=['min', 'max'])

  df.apply(min_max, axis=1)

  # applymap 逐元素计算 每个值保留2位小数

  formater = '{0:.02f}'.format

  df.applymap(formater)

  DataFrame列选择/增加/删除

  df = pd.DataFrame(np.random.randn(6, 4), columns=['one', 'two', 'three', 'four'])

  # 第三列 为 第一列 加上 第二列

  df['three'] = df['one'] + df['two']

  # 添加一个flag列 大于0为True 否则为False

  df['flag'] = df['one'] > 0

  # 删除col为'three'的列

  del df['three']

  # 获取被删的

  four = df.pop('three')

  # 选取col为 five

  df['five'] = 5

  #

  df['one_trunc'] = df['one'][:2]

  # 指定插入位置

  df.insert(1, 'bar', df['one'])

  使用assign() 方法来插入新列

  df = pd.DataFrame(np.random.randint(1, 5, (6, 4)), columns=list('ABCD'))

  # 新列Ratio 值为 df['A'] / df['B']

  df.assign(Ratio = df['A'] / df['B'])

  # 新列AB_Ratio CD_Ratio 值为lambda表达式的值

  df.assign(AB_Ratio = lambda x: x.A / x.B, CD_Ratio = lambda x: x.C - x.D)

  DataFrame排序

  df = pd.DataFrame(np.random.randint(1, 10, (4, 3)), index=list('ABCD'), columns=['one', 'two', 'three'])

  # 按index 为one 排序

  df.sort_values(by='one')

  #

  s.rank()

  DataFrame操作

  DataFrame 在进行数据计算时,会自动按行和列进行数据对齐。最终的计算结果会合并两个 DataFrame。

  df1 = pd.DataFrame(np.random.randn(10, 4), index=list('abcdefghij'), columns=['A', 'B', 'C', 'D'])

  df2 = pd.DataFrame(np.random.randn(7, 3), index=list('cdefghi'), columns=['A', 'B', 'C'])

  df1 + df2

  df1 - df1.iloc[0]

pandas基础:Series与DataFrame操作的更多相关文章

  1. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  2. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  3. pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  4. Python之Pandas中Series、DataFrame

    Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...

  5. Python之Pandas中Series、DataFrame实践

    Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...

  6. pandas学习series和dataframe基础

    PANDAS 的使用 一.什么是pandas? 1.python Data Analysis Library 或pandas 是基于numpy的一种工具,该工具是为了解决数据分析人物而创建的. 2.p ...

  7. Pandas中Series和DataFrame的索引

    在对Series对象和DataFrame对象进行索引的时候要明确这么一个概念:是使用下标进行索引,还是使用关键字进行索引.比如list进行索引的时候使用的是下标,而dict索引的时候使用的是关键字. ...

  8. [Python] Pandas 中 Series 和 DataFrame 的用法笔记

    目录 1. Series对象 自定义元素的行标签 使用Series对象定义基于字典创建数据结构 2. DataFrame对象 自定义行标签和列标签 使用DataFrame对象可以基于字典创建数据结构 ...

  9. Python数据分析-Pandas(Series与DataFrame)

    Pandas介绍: pandas是一个强大的Python数据分析的工具包,是基于NumPy构建的. Pandas的主要功能: 1)具备对其功能的数据结构DataFrame.Series 2)集成时间序 ...

随机推荐

  1. 基于DBUtils实现数据库连接池及flask项目部署

    阅读目录 flask中是没有ORM的,如果在flask里面连接数据库有两种方式 数据库连接池原理 模式一: 模式二: 数据库连接池 flask中是没有ORM的,如果在flask里面连接数据库有两种方式 ...

  2. (转)Tomcat与Jetty区别

    一.简介 Tomcat: Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共 ...

  3. es6之后,真的不需要知道原型链了吗?

    3月份几乎每天都能看到面试的人从我身边经过,前段时间同事聊面试话题提到了原型链,顿时激起了我在开始学习前端时很多心酸的回忆.第一次接触js的面向对象思想是在读<js高程设计>(红宝书)的时 ...

  4. Cookie 技术

    Cookie 学习: 问题: HTTP 协议是没有记忆功能的,一次请求结束后,相关数据会被销毁.如果第二次的请求需要使用相同的请求数据怎么办呢?难道是让用户再次请求书写吗? 解决:使用 Cookie ...

  5. MySQL字段类型 约束

    目录 MySQL存储引擎 非空约束 字段类型 整形类型INT TINYINT 浮点类型float 字符类型char varchar 日期类型 枚举集合 约束条件 主键 自增 unsigned无符号 z ...

  6. JAVA并归排序(数组+链表)

    并归排序与快速排序相似,靠分治思想突破了排序算法 O(n2) 的瓶颈. 我们看回顾一下几大排序算法的时间.空间复杂度: 排序算法 平均时间复杂度 最坏时间复杂度 空间复杂度 是否稳定 冒泡排序 O(n ...

  7. Linux性能优化实战学习笔记:第五十八讲

    一.上节回顾 专栏更新至今,咱们专栏最后一部分——综合案例模块也要告一段落了.很高兴看到你没有掉队,仍然在积极学习思考.实践操作,并热情地分享你在实际环境中,遇到过的各种性能问题的分析思路以及优化方法 ...

  8. 关于阻止百度滥用cookies的想法

    Chrome浏览器支持禁止指定的cookies,因此可以作为阻止百度滥用cookies的突破口,最好的方案应该是制作chrome插件(国内厂商的浏览器基本都是基于谷歌开源的 Chromium计划,基本 ...

  9. BeanCreationException: Error creating bean with name 'classPathFileSystemWatcher'之解决办法

    错误关键信息: BeanCreationException: Error creating bean with name 'classPathFileSystemWatcher' 错误原因:Idea不 ...

  10. C++ 函数重载和参数的缺省值

    一.函数重载 1.1 重载的起源 自然语言中,一个词可以有许多不同的含义,即该词被重载了.人们可以通过上下文来判断该词到底是哪种含义."词的重载"可以使语言更加简练.例如" ...