这一次我的学习笔记就不直接用官方文档的形式来写了了,而是写成类似于“知识图谱”的形式,以供日后参考。

下面是所谓“知识图谱”,有什么用呢?
1.知道有什么操作(英文可以不看)
2.展示本篇笔记的结构
3.以后忘记某个函数某个参数时,方便查询
 
原来写的地方是,那儿的代码看起来会舒服很多: https://www.yuque.com/u86460/dgt6mu/tlywuc   
 
创建
df.Dataframe(data,index)
1.data类型是字典
字典由series构成
>>> import pandas as pd
>>> #由series构成
>>> d ={'a':pd.Series([1,2,3,4]),'b':pd.Series([4,3,2,1,0])}
>>> df =pd.DataFrame(d)
>>> df
a b
0 1.0 4
1 2.0 3
2 3.0 2
3 4.0 1
4 NaN 0
>>> #指定Series的index(标签)
>>> d ={'a':pd.Series([1,2,3,4],index=['a', 'b', 'c','d']),
'b':pd.Series([4,3,2,1,0],index=['a', 'b', 'c','d','f'])}
>>> pd.DataFrame(d)
a b
a 1.0 4
b 2.0 3
c 3.0 2
d 4.0 1
f NaN 0
>>> #指定Dataframe的index(列标签)
>>> pd.DataFrame(d,index =['a', 'b', 'c','d','f'])
a b
a 1.0 4
b 2.0 3
c 3.0 2
d 4.0 1
f NaN 0
>>> #指定Dataframe的columns(行标签)
>>> pd.DataFrame(d,index =['a', 'b', 'c','d','f'],columns=['b','c'])
b c
a 4 NaN
b 3 NaN
c 2 NaN
d 1 NaN
f 0 NaN
 
字典由列表或数组构成
>>> d ={'a':[1,2,3,4],'b':[4,3,2,1]}
>>> pd.DataFrame(d,index=['a', 'b', 'c','d'])
a b
a 1 4
b 2 3
c 3 2
d 4 1
 
字典的键由元组构成
>>> pd.DataFrame({('a', 'b'): {('A', 'B'): 1, ('A', 'C'): 2},
('a', 'a'): {('A', 'C'): 3, ('A', 'B'): 4},
('a', 'c'): {('A', 'B'): 5, ('A', 'C'): 6},
('b', 'a'): {('A', 'C'): 7, ('A', 'B'): 8},
('b', 'b'): {('A', 'D'): 9, ('A', 'B'): 10}}) a b
b a c a b
A B 1.0 4.0 5.0 8.0 10.0
C 2.0 3.0 6.0 7.0 NaN
D NaN NaN NaN NaN 9.0
 
2.类型是list
多个的字典构成的列表
    >>> d = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
>>> pd.DataFrame(d)
a b c
0 1 2 NaN
1 5 10 20.0
 
多个series构成的列表
>>> d =[pd.Series([1,2,3,4],index=['a', 'b', 'c','d']),
pd.Series([4,3,2,1,0],index=['a', 'b', 'c','d','f'])]
>>> pd.DataFrame(d)
a b c d f
0 1.0 2.0 3.0 4.0 NaN
1 4.0 3.0 2.0 1.0 0.0
>>> pd.DataFrame(d,index =['a','b'])
a b c d f
a 1.0 2.0 3.0 4.0 NaN
b 4.0 3.0 2.0 1.0 0.0
>>> #每一个series就是一行
 
3.类型是标记的数组
>>> import numpy as np
>>> #指定数组每一列的数据类型,相当于创建一个模板
>>> data = np.zeros((2,), dtype=[('A', 'i4'),('B', 'f4'),('C', 'a10')])
>>> #为模板赋值
>>> data[:] = [(1,2.,'Hello'), (2,3.,"World")]
>>> pd.DataFrame(data)
A B C
0 1 2.0 b'Hello'
1 2 3.0 b'World'
 
pd.DataFrame.from_dict(dict)
>>> pd.DataFrame.from_dict(dict([('A', [1, 2, 3]), ('B', [4, 5, 6])]))
A B
0 1 4
1 2 5
2 3 6
>>> pd.DataFrame.from_dict(dict([('A', [1, 2, 3]), ('B', [4, 5, 6])]),
orient='index', columns=['one', 'two', 'three']) one two three
A 1 2 3
B 4 5 6
#orient,相当于指定(字典中的键)key作为(列的标签)index
 
DataFrame.from_records
>>> pd.DataFrame.from_records(data, index='C')
A B
C
b'Hello' 1 2.0
b'World' 2 3.0
 
操作
上面创建部分是交互式操作,接下来就直接看代码的的注释,可以自己试着交互
 
import pandas as pd
import numpy as np #**创建部分
#df.Dataframe(data,index)
'类型是字典'
#由series构成
d ={'a':pd.Series([1,2,3,4]),'b':pd.Series([4,3,2,1,0])}
d ={'a':pd.Series([1,2,3,4],index=['a', 'b', 'c','d']),
'b':pd.Series([4,3,2,1,0],index=['a', 'b', 'c','d','f'])} #指定Series的index(标签)
pd.DataFrame(d,index =['a', 'b', 'c','d','f']) #指定Dataframe的index(列标签)
pd.DataFrame(d,index =pd.date_range('2000/1/1',periods=2)) #指定标签为日期
pd.DataFrame(d,index =['a', 'b', 'c','d','f'],columns=['b','c']) #指定Dataframe的columns(行标签)
#字典由列表或数组构成
d ={'a':[1,2,3,4],'b':[4,3,2,1]}
pd.DataFrame(d,index=['a', 'b', 'c','d'])
#字典的键由元组构成
pd.DataFrame({('a', 'b'): {('A', 'B'): 1, ('A', 'C'): 2},
('a', 'a'): {('A', 'C'): 3, ('A', 'B'): 4},
('a', 'c'): {('A', 'B'): 5, ('A', 'C'): 6},
('b', 'a'): {('A', 'C'): 7, ('A', 'B'): 8},
('b', 'b'): {('A', 'D'): 9, ('A', 'B'): 10}}) '类型是list'
#多个的字典构成的列表
d = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
#多个series构成的列表
d =[pd.Series([1,2,3,4],index=['a', 'b', 'c','d']),
pd.Series([4,3,2,1,0],index=['a', 'b', 'c','d','f'])] '类型是标记的数组'
data = np.zeros((2,), dtype=[('A', 'i4'),('B', 'f4'),('C', 'a10')]) #指定数组每一列的数据类型,相当于创建一个模板
data[:] = [(1,2.,'Hello'), (2,3.,"World")] #为模板赋值 #pd.DataFrame.from_dict(dict)
pd.DataFrame.from_dict(dict([('A', [1, 2, 3]), ('B', [4, 5, 6])]))
pd.DataFrame.from_dict(dict([('A', [1, 2, 3]), ('B', [4, 5, 6])]),
orient='index', columns=['one', 'two', 'three'])
#orient,相当于指定(字典中的键)key作为(列的标签)index
#DataFrame.from_records
df =pd.DataFrame.from_records(data, index='C') #**操作部分
'选择'
#选择列
df['A']
#选择行
df.loc[b'Hello']
df.iloc[0]
df['d'] =df['A'] *df['B'] #生成新列
df['e'] =df['A'] >2
df['f'] =df['A'][:1] #切片 '添加'
df.insert(1,'dd',df['B']) #位置,column,值 '删除'
del df['A']
df.pop('B') '变异'
df =pd.DataFrame(d)
df1 =df.assign(new =df['a'] +df['b'])
df1 =df.assign(new =lambda x:x['a'] *x['b']) '过滤'
df1=df.query('a>1').assign(new =df['a'] +df['b']) #**计算部分
'四则,布尔:+-*/,|&^ 都是点对点形式' '矩阵'
df.T #转置
df.T@df
df.T.dot(df) #积 #输出部分
df.to_string()
#pd.set_option('display.max_colwidth',30)
#pd.set_option('display.width', 40) # default is 80
 

pandas数据结构之DataFrame操作的更多相关文章

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

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

  2. pandas数据结构之Dataframe

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

  3. pandas数据结构之DataFrame笔记

    DataFrame输出的为表的形式,由于要把输出的表格贴上来比较麻烦,在此就不在贴出相关输出结果,代码在jupyter notebook可以顺利运行代码中有相关解释用来加深理解方便记忆 import ...

  4. pandas数据结构之series操作

    阅读之前假定你已经有了python内置的list和dict的基础.这里内容几乎是官方文档的翻译版本.   概览: ​   原来的文档是在一个地方,那边的代码看起来舒服些   https://www.y ...

  5. 03. Pandas数据结构

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

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

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

  7. pandas基础:Series与DataFrame操作

    pandas包 # 引入包 import pandas as pd import numpy as np import matplotlib.pyplot as plt Series Series 是 ...

  8. [转]python中pandas库中DataFrame对行和列的操作使用方法

    转自:http://blog.csdn.net/u011089523/article/details/60341016 用pandas中的DataFrame时选取行或列: import numpy a ...

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

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

随机推荐

  1. vue 项目搭建步骤

    环境搭建步骤: 打开git ,运行 npm install --global vue-cli 这是安装vue的命令行 vue init webpack vue-demo 这是vue基于webpack的 ...

  2. 测试那些事儿—软测必备的Linux知识(三)

    ubantu 打开命令提示符的方法:点击左上角图标输入terminal 1.系统管理 1.1 shutdown,系统关机命令 -h:关机        -r:重启 shutdown -h now 立即 ...

  3. python开发流程及项目目录规范

    # 项目开发流程 1.调研 2.需求分析   ---产品经理 3.任务分配   ---项目经理 4.写项目demo   ---项目经理.架构师.程序猿 5.架构分析   ---项目经理.架构师 6.编 ...

  4. 常用socket选项

    1.socket选项通常:服务端应在listen 前设置,accpet返回的socket继承自监听套接字. 客户端应在connect之前设置 2.socket 如果有大量短连接应设置SO_LINGER ...

  5. 如何将maven配置在eclipse上

    如何将maven配置在eclipse上 安装maven:(需要确保你已经安装了jdk) 去apache官网下载maven:http://maven.apache.org/download.cgi 下载 ...

  6. Python变量和常量

    1.什么是变量 变量:核心在于变和量儿字,变->变化,量->状态如何定义? x=1 变量名 变量赋值符号:= 变量值:1 其中变量名又称为标识符: 1. 可以是字母,数字,下划线的任意组合 ...

  7. 慢慢啃css

    上个礼拜清明放假了,所有忘记更新了,但是每天的学习没有落下,嘿嘿嘿~ 可是这两天就很头疼了,因为发烧了,呜呜呜~昨天在床上睡了一天,四肢无力,头晕眼花,严重的发烧,想靠自己的免疫力扛过去,缺没有. 今 ...

  8. Python基础:五、Python程序的编写方式

    python程序有两种编写方式: 1. 进入cmd控制台(linux终端),输入python进入编辑模式,这时候我们可以直接编写python程序 2. 也可以在.py文件中编写python代码,通过p ...

  9. Oracle Base64加解密

    参考 http://blog.csdn.net/liuzhigang1237/article/details/7591439

  10. BZOJ5311,CF321E 贞鱼

    题意 Problem 5311. -- 贞鱼 5311: 贞鱼 Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 677  Solved: 150[Subm ...