DataFrame输出的为表的形式,由于要把输出的表格贴上来比较麻烦,在此就不在贴出相关输出结果,代码在jupyter notebook可以顺利运行
代码中有相关解释用来加深理解方便记忆
 import numpy as np
import pandas as pd d = {'one':pd.Series([1,2,3],index=['a','b','c']),
'two':pd.Series([1,2,3,4],index=['a','b','c','d'])} df = pd.DataFrame(d) # 通过字典创建DataFrame,其中'one'列,没有'd'索引,所以赋值
# 为NaN df = pd.DataFrame(d, index=['d','b','a']) # 可以对原有的DataFrame再创建,选取其中
# 的行索引,index表示行索引 df = pd.DataFrame(d, columns=['two','three']) # 也可以对列进行操作,如果选择的列
# 不存在,则自动添加到下一列
# 并赋值为NaN,colums表示的是列索引 d = {'one':[1,2,3,4],
'two':[21,22,23,24]} # 字典创建的DataFrame,键表示列索引,如果没有给定行索
# 引,DataFrame会赋默认值
df = pd.DataFrame(d) data = [(1,2.2,'Hello'),(2,3.,'World')] # 这个列表中的两个元组将作为行值被操作
df = pd.DataFrame(data,index=['one','two'],columns=list('ABC')) data = [{'a':1,'b':2},{'a':5,'b':10,'c':20}] # 这个列表中的字典的键将被作为列索引
# 创建,每个字典分别作为行处理 df = pd.DataFrame(data,index=['A','B'],columns=['a','b','e'])
# 再次定义列索引时,若字典中没有对应的列将赋值为NaN,对应的列位置也将被
# cloums对应的列索引取代 d = {('a','b'):{('A','B'):1,('A','C'):2}, # 字典中最外层作为键的元组的第一个元素作为
# 第一行的列索引,
('a','a'):{('A','C'):1,('A','B'):4}, # 第二个元素作为第二行的列索引
('a','c'):{('A','B'):1,('A','C'):6}, # 作为值的字典,将被作为行操作,其中作为键的
# 元组第一个元素
('b','a'):{('A','C'):1,('A','B'):8}, # 作为第一例的行索引,第二个元素作为第二列的
# 行索引
('b','b'):{('A','D'):1,('A','B'):10}}
df = pd.DataFrame(d) s = pd.Series(np.random.randn(5), index=['a','b','c','d','e'])
pd.DataFrame(s,columns=['A'],index=list('acd'))
# 取Series创建的表的一部分(a,c,d) df = pd.DataFrame(np.random.randn(6,4),columns=['one','two','three','four'])
df['one'] # 在DataFrame中默认取列索引
df.loc[1] # 用loc函数取到的是行索引的值
df['three'] = df['one']+df['two'] # 通过索引赋值,元表改变,索引值可以相加
del df['three'] # 也可以删除索引值
df['flag'] = df['one'] > 0.2 # 这是布尔型索引
df['five'] = 5 # 对列索引赋单值时,这个列对应的所有行值为所赋的那个值 s = df.pop('four') # pop函数取出某个列也可以用在DataFram中
df.insert(1,'bar',df['one']+df['two'])
# 1表示插入在1位置,'bar',插入的列名,df['one']+df['two']为列的值 df改变 df.assign(Ratio = df['one']/df['two'])
# assign函数添加末列其中Ratio表示列索引,df['one']/df['two']为列值
# 但是df没有改变 但是df没有改变 但是df没有改变 df.assign(Ratio = lambda x: x.one-x.two)
# x表示整个表,x.one, x.two表示对应的列值 df.assign(ABRatio = df.one / df.two).assign(BarValue = lambda x: x.ABRatio*x.bar) # 连续assign也可以 df = pd.DataFrame(np.random.randint(1,10,(6,4)),index=list('abcdef'),columns=list('ABCD'))
df['A'] # 列索引取值
df.loc['a'] # 行索引取值
df.iloc[1] # 通过数值取行索引值
df[1:4] # 通过行范围索引取值
df.iloc[1:4] # 与df[1:4]效果一样
df.A>4 # 判断A列大于4的情况
df[df.A>=4] # 索引也可以是表达式,以表的形式返回大于4的值 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 # 行列索引无法对应的取NaN
df1-df1.iloc[0] # DataForm可以与单行相减
np.exp(df2) # DataForm可以使用numpy的函数
np.sin(df2)
df2.values # 返回的是数组 type(df2.values)
# 输出numpy.ndarray np.asarray(df2) == df2.values
#输出
array([[ True, True, True],
[ True, True, True],
[ True, True, True],
[ True, True, True],
[ True, True, True],
[ True, True, True],
[ True, True, True]])
												

pandas数据结构之DataFrame笔记的更多相关文章

  1. pandas 学习(2): pandas 数据结构之DataFrame

    DataFrame 类型类似于数据库表结构的数据结构,其含有行索引和列索引,可以将DataFrame 想成是由相同索引的Series组成的Dict类型.在其底层是通过二维以及一维的数据块实现. 1.  ...

  2. pandas数据结构之DataFrame操作

    这一次我的学习笔记就不直接用官方文档的形式来写了了,而是写成类似于“知识图谱”的形式,以供日后参考. 下面是所谓“知识图谱”,有什么用呢? 1.知道有什么操作(英文可以不看) 2.展示本篇笔记的结构 ...

  3. pandas数据结构之Dataframe

    Dataframe DataFrame是一个[表格型]的数据结构,可以看做是[由Series组成的字典](多个series共用同一个索引).DataFrame由按一定顺序排列的多列数据组成.设计初衷是 ...

  4. pandas数据结构之Panel笔记

    Panel创建的是三维的表 items:坐标轴0,索引对应的元素是一个DataFrame major_axis:坐标轴1,DataFrame里的行标签 minor_axis:坐标轴2,DataFram ...

  5. pandas数据结构之Series笔记

    对Series的理解也源于对其相关的代码操作,本次仅贴一些代码来加深理解以及记忆 import pandas as pd import numpy as np s = pd.Series(np.ran ...

  6. 03. Pandas数据结构

    03. Pandas数据结构 Series DataFrame 从DataFrame中查询出Series 1. Series Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一 ...

  7. pandas数据结构:Series/DataFrame;python函数:range/arange

    1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会 ...

  8. Pandas 数据结构Dataframe:基本概念及创建

    "二维数组"Dataframe:是一个表格型的数据结构,包含一组有序的列,其列的值类型可以是数值.字符串.布尔值等. Dataframe中的数据以一个或多个二维块存放,不是列表.字 ...

  9. python之pandas学习笔记-pandas数据结构

    pandas数据结构 pandas处理3种数据结构,它们建立在numpy数组之上,所以运行速度很快: 1.系列(Series) 2.数据帧(DataFrame) 3.面板(Panel) 关系: 数据结 ...

随机推荐

  1. Mybatis基础-完整CRUD操作

    步骤一:mybatis基本配置 1)创建Java项目,在lib下导入mybatis所需要的Jar包,包括链接mysql的mysql-connector-java-5.1.7-bin.jar. 2)在s ...

  2. Java基础系列 - HashMap

    package com.test3; import java.util.ArrayList; import java.util.HashMap; import java.util.List; impo ...

  3. CF1188B Count Pairs

    [题目描述] 给定一个质数 \(p\) , 一个长度为 \(n\)n 的序列 \(a = \{ a_1,a_2,\cdots,a_n\}\)一个整数 \(k\). 求所有数对 \((i, j)\) ( ...

  4. Java核心复习——J.U.C LinkedBlockingQueue源码分析

    参考文档 LinkedBlockingQueue和ArrayBlockingQueue的异同

  5. What are the benefits to using anonymous functions instead of named functions for callbacks and parameters in JavaScript event code?

     What are the benefits to using anonymous functions instead of named functions for callbacks and par ...

  6. [ERR] 2006 - MySQL server has gone away如何解决

    解决方案: max_allowed_packet = 16M 改大点! 文章来源:外星人来地球 欢迎关注,有问题一起学习欢迎留言.评论

  7. Angular 中的数据交互(get jsonp post)

    一.Angular get 请求数据 Angular5.x 以后 get.post 和和服务器交互使用的是 HttpClientModule 模块. 1.在 app.module.ts 中引入 并注入 ...

  8. 123457123456#0#-----com.threeapp.headsoccer----宝宝头球大战

    com.threeapp.headsoccer----宝宝头球大战

  9. PAT 甲级 1063 Set Similarity (25 分) (新学,set的使用,printf 输出%,要%%)

    1063 Set Similarity (25 分)   Given two sets of integers, the similarity of the sets is defined to be ...

  10. UIFontDownLoad ----动态下载系统提供的字体

    程序运行结果如下 : 当点击对应单元格实现下载对应的字体. 控制台打印结果如下 : 2015-10-05 11:14:04.132 UIFontDownLoad[12721:86827] state ...