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. (转)SmartPing:一个服务器Ping值监测工具

    官网:https://docs.smartping.org/ 借鉴:https://www.moerats.com/archives/710/ 说明:之前博主发过一个雨落大神写的Ping值监测工具uP ...

  2. 页面tr和td的的隐藏与显示

    <view:qrytr attributes="class=zcrzs"> </view:qrytr>     var bd11 = $("tr[ ...

  3. IntelliJ IDEA 2017.3 配置Tomcat运行web项目教程(多图)

    小白一枚,借鉴了好多人的博客,然后自己总结了一些图,尽量的详细.在配置的过程中,有许多疑问.如果读者看到后能给我解答的,请留言.Idea请各位自己安装好,还需要安装Maven和Tomcat,各自配置好 ...

  4. ISA真慢

    计划没有变化快,周一计划的任务几乎没怎么做,时间完全交给了一个BUG: 最近大家在做新主板的功能,同事说DeviceNet不通,尽管我对DeviceNet一点不懂,不过好歹之前测过CAN模块在新主板上 ...

  5. 2018-2019-2 网络对抗技术 20165231 Exp 8 Web基础

    实验内容 (1).Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt(0 ...

  6. 分区工具parted的使用方法

    一.         parted的用途及说明 概括使用说明: parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区,并且允许调整分区的大小.   ...

  7. keras检查点的保存

    来自 keras的文档:https://keras.io/callbacks/#callback ModelCheckpoint keras.callbacks.ModelCheckpoint(fil ...

  8. Java体系

    Java之父:詹姆斯·高斯林 java之前叫做“Oak”,后改名为Java.//Oak来源于橡树,java 来源爪哇岛的一种咖啡 Java语言平台 J2SE(Java 2 Platform Stand ...

  9. ISO/IEC 9899:2011 条款5——5.2.3 信号与中断

    5.2.3 信号与中断 1.函数应该被设计为它们可以被一个信号在任一时刻打断,或是被一个信号处理所调用,或是两者都发生,对于初期不发生改变,但仍然处于活动状态,调用的控制流(在中断之后),函数返回值, ...

  10. linux性能监控 -CPU、Memory、IO、Network等指标的讲解

    [操作系统-linux]linux性能监控 -CPU.Memory.IO.Network等指标的讲解(转) 一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,Syst ...