pandas
基本概念
Seris就是一列数据,DataFrame就是Excel里的一个sheet
Series
DataFrame
支持原位改变,但是和基础数据类型不同:1、相比较基础数据多出来index和column,2个都支持原位改变;2、很多方法并不支持原位改变,也是出于应用的需要。
其他
pycharm无法直接显示图片
• 编程工具不一样,那个jupyter是直接shell编程的感觉,回车 直接编译,但是idea是脚本编程,你得告诉编译器,开始编译,所以要有一个show
pd.Series([ ])
就是一列数据,可是数值也可以是字符串,但这一列必须是相同数据类型,如果是数值全都是数值。
不可以任意嵌套的,Series的元素可以是丰富多样的,但是Series不可以嵌套Series
声明
pd.Series([ ],index=[ ])
• index可以不写,默认从0开始
• pd.Series([1,2,3,4,5,],index=[‘a’,‘b’,‘c’,‘d’,‘e’])
pd.Series(字典)
• 通过字典声明,字典的keys就变为index,values还是values,所以就不需要单独写index
• d1={‘name’:‘mary’,‘age’:33}s1=pd.Series(d1)print(s1)
• name maryage 33dtype: object
属性
对象的属性本来就可以直接修改,这是class的特性,index可以,values不可以,开发者是要把values和其他区分开
.index
• 支持原位改变、查看
• S.index=[新索引]
• 修改全部索引
• s1=pd.Series([1,2])s1.index=[‘a’,‘b’]print(s1)
• a 1b 2dtype: int64
.vlaues
• 可以查看,判断,不支持原位改变
• S.values==值
• 判断在不在序列里面
索引
索引只针对values,因为index就是索引的一种
S[‘index’]
• 与位置索引不同,包括右边值
• S[’index‘:’index‘]
• S[’index‘,’index‘]
S[ ]
• [:]
• 位置索引,与之前一样不包括右边值
• [[ ]]
• 索引断开的值,这是pd特有的。
支持原位改变
index
• S.index=[新索引]
• 修改全部索引
• s1=pd.Series([1,2])s1.index=[‘a’,‘b’]print(s1)
• a 1b 2dtype: int64
values
• 标签索引
• S[‘index’]=新值
• S[’index‘:’index‘]=[新值,新值,…]
• S[’index‘,index‘]=[新值,新值,…]
• 位置索引
• S[ ]=新值
• S[[0,4]]=[新值,新值,…]
• 位置索引如果不连续需要加[],标签索引不需要
方法
.append(S)
• 增加
• 非原位改变
.drop(index)
• 删除
函数
len()
pd.DataFrame
DataFrame就是Excel里的一个sheet,比Series多出列标签,所以比基础数据类型多,有3部分,values,index,columns
声明
行列标签可以不写,三要素写全了就可以
pd.DataFrame(values,index= ,columns=)
• date=pd.date_range(‘19880214’,periods=3)a=pd.DataFrame(np.random.rand(3,4),index=date,columns=list(range(1,5)))print(a)
• 1 2 3 41988-02-14 0.225271 0.823277 0.270914 0.2037281988-02-15 0.777933 0.513965 0.887696 0.6875371988-02-16 0.095415 0.496730 0.274636 0.921913
pd.DataFrame(字典,index=[ ])
• 通过字典声明,字典的keys就变为columns,values还是values,但是这里每个keys必须对应多个values。index可以不写。
• d2={‘name’:[‘mary’,‘lucy’],‘age’:[10,12]}s2=pd.DataFrame(d2)print(s2)
• name age0 mary 101 lucy 12
属性
对象的属性本来就可以直接修改,这是class的特性,index、column都可以,values不可以,开发者是要把values和其他区分开
.index
• 支持查看、整体原位改变
• .index = [行标签]
• df.index = range(0,len(df.index))
.columns
• 支持查看、整体原位改变
• .columns =[列标签]
• df.columns = range(0, len(df.columns))
.values
• 支持查看,不支持整体原位改变
.列标签
• 支持查看、整体原位改变这一列的values
索引
标签索引
• .loc[行标签,列标签]
• 标签索引都是包括后右边值
• df.loc[‘20180103’, ‘B’]
• df.loc[‘