pandas由于其丰富功能和效率,成为python数据处理的首选库(以上内容均为吹牛)
pandas主要数据结构
Series
有一组数据以及一组与之相关的数据标签组成
本质上是标签值到数据的映射
import pandas as pd
from pandas import Series,DataFrame
obj=Series([1,2,3,4])
print(obj)
标签形式是可以通过命令更换的
#利用index输入数组,更改标签名称,必须数量一致对齐
obj2=Series([1,2,3,4],index=['L','F','C','1'])
print(obj2)
通过呼唤标签,可以索引
#接上文obj2
#单索引返回值不带标签
print(obj2[1])
print(obj2['F'])
#多行索引带了标签
print(obj2[[1,2]])
print(obj2[['F','C']])
series变量同样可以参与numpy运算
#注意ndarray与series的表示区别
arr=np.array([1,2,3,4])
print(arr)
obj2=Series([1,2,3,4])
print(obj2)
#series的数组运算
print(obj2[obj2>2])
print(arr[arr>2])
通过已有的字典变量引入series
#通过字典变量引入series变量
sdata={'BJ':100,'SH':98,'GZ':97,'SZ':0}
obj=Series(sdata)
print(obj)
#可以通过指定index参数数组生成目标series,不过没匹配的显示NaN
states=['BJ','CS','GZ','SZ']
obj2=Series(sdata,index=states)
print(obj2)
series特点:可以自动对齐并运算不同索引的数据
#接上文,不存在的列不会保留原值,因为NaN+num=NaN
#交集
print(obj+obj2)
name属性
#给series取名字,接上文数据
obj2.name='score'#series分数
obj2.index.name='city'
print(obj2)
DataFrame
到底谁抄谁~
定义:series组成的字典数据(故而用花括号)
人话:面板数据
注意本质上是由series构成,单独拿一列出来,那就是series
利用DataFrame生成DF
#一个普普通通的字典
data={'姓名':['黑格尔','拉康','齐泽克'],'国家':['德国','法国','斯洛文尼亚'],'思想极端性':[2,6,10]}
print(data)
#利用dataframe命令直接生成
frame=DataFrame(data)
print(frame)
#通过传入列名,指定生成顺序
frame2=DataFrame(data,columns=['思想极端性','姓名','国家'])
print(frame2)
#传入了不存在的列,则生成NaN(不会直接报错)
frame3=DataFrame(data,columns=['思想极端性','姓名','国家','了解程度'])
print(frame3)
#还有嵌套字典的代入,嵌套内是同一变量,相当于是面板的year之云东东
赋值
#列的赋值,接上文,赋予的是数组
frame3['了解程度']=5
print(frame3)
frame3['了解程度']=[4,2,5]
print(frame3)
frame3['了解程度']=np.arange(3.)
print(frame3)
获取