第一章:pandas基础
学习资料第一章内容(鉴于本周校内课程内容较多,进度比较慢)
记录自己在学习过程的疑难,延伸,以及对学习笔记的补充。省略与资料笔记相同的笔记部分
第一节学习笔记
读取和写入文件 ,注意:路径中的斜杠方向:/
将刚才df那个表格写成一个新的表格存储下来,命名为tablemy
df.to_csv('C:/Users/76709/Desktop/4.18组对学习pandas/joyful-pandas-master/data/tablemy.csv')
第二节学习笔记
Series
-
Series的常见属性:index name value dtype
-
Series的常见方法:访问属性 s.属性; 利用索引取元素 s.[‘index’]; 调用 e.g. s.mean(); 将Series转换为DataFrame:s.to_frame()
DataFrame
- 创建DataFrame
DataFrame里面属性包括index columns value shape
创建一个新的dataframe时,可以规定index再用list方法直接填入每个column里的value - 从DataFrame中取Series
dataframe由一些series组成
可以从dataframe中取出一列一列的series 通过索引的方法 - 修改值
修改dataframe里面的值
df.rename( index = { ‘被替换值’ : ‘替换值’ } ) - 索引对齐特性
dataframe之间可以利用相同的索引一一对齐计算,且column要一致,与value所在位置无关,仅与索引对齐的位置有关
p1 = pd.DataFrame({'A':[1,2,3]},index=[1,2,3])
p2 = pd.DataFrame({'A':[1,2,3]},index=[3,2,1])
p3 = pd.DataFrame({'a':[1,2,3]},index=[3,2,1])
p1.head()
p2.head()
p3.head()
p1-p2
p2-p3
-
删除某列
在使用drop删除dataframe某列中 仅当设置inplace=True时,原dataframe才会有变化 -
增添某列
直接增加某列用list();也可用df.assign(columns=pd.Serise()),但assign对原DataFrame无更改 -
Series转换为DataFrame
s.to_frame()
Series里面的name属性变为DataFrame里面的column,index依旧是index,value也不变
第三节学习笔记
常用基本函数
- 展示前面部分 head() , 展示后面部分 tail()
可指定行数 - df[‘column’].nunique() 用来显示不同值的个数,一共有几种值
df[‘column’].unique() 用来显示是哪几个不同值
df[‘column’].count() 用来显示非缺失值的个数
df[‘column’].value_counts() 用来显示每个不同值分别有几个 - clip截断用法: df[‘column’].clip(下限值,上限值)
注意:低于下限值的改为下限值,高于上限值的改为上限值,其他值不变,对df本身未改动
df['Math'].head(10)
-
replace替换函数
replace用法1:df [ ‘column’ ].replace ( [ ‘被替换值1’ , ‘被替换值2’ ] , [ ‘替换值1’ , ‘替换值2’ ] )
replace用法2:df.replace ( { ‘column’ : { ‘被替换值1’ : ‘替换值1’ , ‘被替换值2’ : ‘替换值2’ } } ) -
apply函数
apply迭代Series的每一个值或者DataFrame的每一个列操作
lambda匿名函数 lambda x:x的相关操作 例如 lambda x:str(x) 或 lambda x:x**2
第四节学习笔记
排序
用某一列替换索引 df.set_index(‘column’)
用某一列索引排序 df.set_index(‘column’).sort_index() 注意:默认升序,ascending=True;若降序,则ascending=False
df.set_index('Math').sort_index(ascending=False).head()
- 利用某列值排序 不替换索引 df.sort_values ( by= ‘column’ )
利用多值排序 df.sort_values( by=[ ‘column1’ , ‘column2’ ] )
课后作业
问题
- 答:Series的常见属性:index name value dtype
Series的常见方法:访问属性 s.属性;利用索引取元素 s.[‘index’];调用 e.g. s.mean();将Series转换为DataFrame:s.to_frame()
DataFrame的常见属性:index column value type
DataFrame的常见方法:取出一列Series;修改index名或column名;调用属性;删除列drop()、pop()、del;添加列assign()或直接添加;转置:df.T - 答:不会。count 是用来显示非缺失值的个数,同理value_counts 不会统计缺失值
- 答:功能相反的函数:idxmin() 返回最小值;nsmallest() 返回前几个小的元素值
- 答:sum()求和函数;mean()均值函数;median()中值函数;mad()根据平均值计算平均绝对距离差;max()最大值函数;min()最小值函数;abs()绝对值函数;std()标准差函数;var()方差函数;quantile()四分位函数;cummax()依次给出前n个数的最大值;cummin()依次给出前n个数的最小值;cumsum()依次给出前n个数的和;cumprod()依次给出前n个数的积
- 答:df.mean(axis=1) 是以列计算均值,与 df.mean() 不一样,df.mean() 默认axis=0,以行计算均值。二维的轴 0表示行 1表示列 ;三维的轴 0表示块 1表示行 2表示列
练习
- 练习一:
(a)(b) - 练习二:
(a)
(b)