博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pandas数据结构之DataFrame操作
阅读量:4949 次
发布时间:2019-06-11

本文共 3248 字,大约阅读时间需要 10 分钟。

 

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

下面是所谓“知识图谱”,有什么用呢?
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 pdimport 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',

转载于:https://www.cnblogs.com/vvlj/p/9983715.html

你可能感兴趣的文章
深拷贝 vs 浅拷贝 释放多次
查看>>
Java环境变量PATH和CLASSPATH
查看>>
ERROR:bokeh.core.validation.check:E-1001 (BAD_COLUMN_NAME) 就是补存在这个列名
查看>>
assert 的作用是什么?
查看>>
收藏夹(持续更新)
查看>>
iOS中的#import和class区别
查看>>
节约内存,请使用标签页管理工具:onetab、better onetab
查看>>
jQuery中的事件与动画
查看>>
页面加载骨架
查看>>
关于android系统不关屏设置
查看>>
SONY VPCS138EC降级安装XP
查看>>
[luogu4201][bzoj1063]设计路线【树形DP】
查看>>
手机抓包-手机劫持域名到指定服务器
查看>>
被放逐的皇后 金建云
查看>>
Javascript 有用参考函数
查看>>
点群的判别(三)
查看>>
gradle
查看>>
GNSS 使用DFT算法 能量损耗仿真
查看>>
常见的控制跳转的宏定义
查看>>
JavaSE| 面向对象的三大特征
查看>>