0.
pandas可以数据清洗 分析 他有使这些工作更快的数据结构和操作工具
pandas和数值计算工具Numpy和Scipy一起用
和分析库statsmodels和scikit-learn一起用
和数据可视化库matplotlib一起用
pandas专门为处理表格和混杂数据设计的
Numpy是为了处理同意的数值数组数据
以上
import pandas as pd
1.
pandas有两个主要的数据结构
Series (系列) 和 DataFrame(数据帧) 有道翻译的。。
2.
Series是一种类似一维数组的对象
他由一组数据以及一组与之相关的数据标签组成 (一组np的数据类型和一个索引)
最简单的就是obj=pd.Series([一个列表])
然后obj 就弹出一个索引 左边是01234567,右边是分别的内容
obj=pd.Series([一个列表]),index=['a','b','c','d']
左边就变成abcd了
可以单独查看obj.index
obj['a'] 就会弹出第一个对应值
要查询多个值 要把这些字符串放在一个列表里,[['a','b','c']]这叫索引列表
可以obj[obj>0] 这是对数值的查询 即对右边的查询
也可以obj*2、、np.exp[obj]
也可以看字符串是否在索引列表里 'a' in obj 返回True
这个和字典很像 也可以直接obj=pd.Series(字典名)
如果Series的index里单插入一个索引列表,不用原来字典的
那么会进行索引,原来字典里一对一的会正常摆出来
index里没有的会把它视作键,但是值那里显示NaN(not a number)
用pd.isnull(obj) 和 pd.notnull(obj)
会把Series里左边索引是否有值得True或False显示出来
obj.isnull() pd.notnull() 也可以做到
它牛逼就在于 可以自动对齐数据
两个obj相加 会把两个索引相同的值加在一起 只有一个索引的 就显示出来
Series对象和索引 都一个name属性
obj.name='pop' obj.index.name='state'
这样在左上会显示出来state 最下边是name:pop
state可以原地修改 直接obj.index=[想要的index]
3.
DataFrame
他是一个表格型的数据结构 有一组有序的列 可以是不同的值类型
可以行列索引 都可以
可以当做是Series组成的字典
它里边的数据由一个或多个二维块存放
建立这个是要传入一个等长列表或者Numpy数组组成的字典
然后最左边是索引 0123456 然后右边每列的表头是字典里的键
字典里的值需要是列表,然后对应每个索引的值就是表格里的值
data={'a':[11,22,33],
'b':[44,55,66],
'c':[77,88,99] }
frame=pd.DataFrame(data)
就显示一个表格 表头是abd 左列是012
可以只显示前5行 用 frame.head()
可以pd.DataFrame(data,columns=['b','c','a']) 给表头排序
可以pd.DataFrame(data,index=[‘一’,‘二’。。。]) 给索引命名
没有的值也会NaN
frame['a'] 就弹出一个Series 左边是索引 右边是'a'
frame.loc[索引] 就弹出一个 左边是表头 右边是该索引对应的数值 等于给转置了
frame[‘内容为空的表头’]= 。。。 空的可以赋值 可以是同一个值 可以是迭代器
frame['新的表头']=。。。 可以添加新的内容
del frame['某个表头名'] 就删了这列了
嵌套的字典传给DataFrame时候 外层的键是表头!内层的键是索引!
frame.T 转置
pd.DataFrame(data,index=[‘一’,‘二’。。。]) 嵌套的字典会把索引里有的给带出来,没有索引的就显示NaN
DataFrame有 index columns的name属性 可以一起显示
index的方法和属性