pytho 4000 n之pandas库学习常用函数
2017-09-23 16:03
387 查看
github地址:https://github.com/xiaoping1988/ping-ml
$(".MathJax").remove();
读取文件
import numpy as np import pandas as pd # pandas会默认把第一行当做列名,如果第一行不是列名,请指定列名 tt = pd.read_csv('titanic_train.csv') #tt = pd.read_csv('titanic_train_no_columns.csv',names=['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp','Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked']) print('类型:',type(tt)) print('矩阵结构:',tt.shape) print('矩阵中各列数据类型:\n',tt.dtypes) print('矩阵列名集合:',tt.columns) print('矩阵列名集合:',tt.columns.tolist())
读取数据
import numpy as np import pandas as pd tt = pd.read_csv('titanic_train.csv') print('读取头部几行:\n',tt.head()) print('读取头部10行:\n',tt.head(10)) print('读取尾部几行:\n',tt.tail()) print('读取尾部10行:\n',tt.tail(10)) print('按行指定一个范围索引读取,读取索引1至索引5的行数据:\n',tt.loc[1:5]) print('根据行索引读取指定的几行,读取索引[1,3,5]的行数据:\n',tt.loc[[1,3,5]]) print('按列读取数据,读取某一列数据:\n',tt['Name']) print('按列读取数据,读取多列数据:\n',tt[['Name','Sex','Age']])
进行计算,改变列数据,增加列
import numpy as np import pandas as pd tt = pd.read_csv('titanic_train.csv') plus = tt['PassengerId'] + 100 print('对某列加减乘除,加法:\n',plus) sub = tt['PassengerId'] - 10 print('对某列加减乘除,减法:\n',sub) mul = tt['PassengerId'] * 100 print('对某列加减乘除,乘法:\n',mul) divide = tt['PassengerId'] / 10 print('对某列加减乘除,除法:\n',divide) ## 对两列加减乘除 pp = tt['PassengerId'] + tt['Pclass'] print('对两列加减乘除,加法:\n',pp) ## 改变某列数据 tt['Pclass'] = tt['Pclass'] * 10 print('改变某列数据:\n',tt['Pclass']) ## 增加某列 tt['PassengerId100'] = plus print('增加列:\n',tt.columns.tolist()) print(tt.head())
统计列最大值、最小值、平均值、汇总值等
import numpy as np import pandas as pd tt = pd.read_csv('titanic_train.csv') print('统计某列最大值:',tt['Age'].max()) print('统计某列最小值:',tt['Age'].min()) print('统计某列平均值:',tt['Age'].mean()) print('统计某列汇总值:',tt['Age'].sum())
按列数据进行排序
import numpy as np import pandas as pd tt = pd.read_csv('titanic_train.csv') age = tt.sort_values('Age') print('升序:\n',age) age2 = tt.sort_values('Age',ascending=False) print('降序:\n',age2) age3 = tt.sort_values(['Age','Pclass']) print('按多列排序:\n',age3) age4 = age.reset_index(drop=True) print('排序之后重置索引序号:\n',age4)
求缺失值
import numpy as np import pandas as pd tt = pd.read_csv('titanic_train.csv') age = tt['Age'] age_is_null = pd.isnull(age) #print(age_is_null) age_is_null_true = age[age_is_null] #print(age_is_null_true) print('null值数量:',len(age_is_null_true)) age_is_not_null = age[age_is_null == False] print('not null值数量:',len(age_is_not_null))
按列分组统计数据,group by操作
import numpy as np import pandas as pd tt = pd.read_csv('titanic_train.csv') pa_mean = tt.pivot_table(index='Pclass',values='Age') print('按列分组求平均值:\n',pa_mean) pa_mean2 = tt.pivot_table(index='Pclass',values='Age',aggfunc=np.mean) print('按列分组求平均值:\n',pa_mean2) pa_max = tt.pivot_table(index='Pclass',values='Age',aggfunc=np.max) print('按列分组求最大值:\n',pa_max) pa_min = tt.pivot_table(index='Pclass',values='Age',aggfunc=np.min) print('按列分组求最小值:\n',pa_min) pa_sum = tt.pivot_table(index='Pclass',values='Age',aggfunc=np.sum) print('按列分组求汇总值:\n',pa_sum) pa_len = tt.pivot_table(index='Pclass',values='Age',aggfunc=len) print('按列分组求count值:\n',pa_len) paf_mean = tt.pivot_table(index='Pclass',values=['Age','Fare']) print('按列分组求多列的平均值:\n',paf_mean)
处理缺失值
import numpy as np import pandas as pd tt = pd.read_csv('titanic_train.csv') print('原始结构:',tt.shape) # 按列处理缺失值,只要列中存在NaN值则删除此列 dp = tt.dropna(axis=1) print('按列处理后的结构,只要列中存在NaN值则删除此列:',dp.shape) # 按行处理缺失值,只要行中存在NaN值则删除此行 dp2 = tt.dropna(axis=0) print('按行处理后的机构,只要行中存在NaN值则删除此行:',dp2.shape) # 按行处理缺失值,只要行中的指定列存在NaN值才删除此行 dp3 = tt.dropna(axis=0,subset=['Age','Fare']) print('按行处理后的机构,只要行中的指定列存在NaN值才删除此行:',dp3.shape) # 给所有的缺失值赋予一个默认值 tt.fillna(value=-99,axis=1,inplace=True) # inplace=True代表不新生成一个dataframe tt.sort_values(['Age','Pclass'],inplace=True) print(tt.head())
自定义函数统计
import numpy as np import pandas as pd tt = pd.read_csv('titanic_train.csv') # 统计每列的缺失值数量,不为缺失值数量 def null_count(column): return len(tt[pd.isnull(column)]) def not_null_count(column): null = pd.isnull(column) return len(tt[null == False]) print('各列缺失值数量:\n',tt.apply(null_count)) print('各列有值数量:\n',tt.apply(not_null_count)) # 转变每行中的某列值 def age_row(row): age = row.Age if pd.isnull(age): return '未知年龄' elif age>=18: return '成年人' else: return '未成年人' age_n = tt.apply(age_row,axis=1) tt['Age_n'] = age_n age_group = tt.pivot_table(index='Age_n',values=['Pclass','Fare']) print('转变每行中的某列值:\n',age_group)
$(".MathJax").remove();
相关文章推荐
- pandas 学习(二)—— pandas 下的常用函数
- FreeBASIC学习笔记——第07章 常用内部函数
- tensorflow学习之常用函数总结:tensorflow.reduce_mean()函数
- python os库常用函数学习
- pandas常用函数
- C#学习常用方法(4000)---Activator.CreateInstance方法
- php学习笔记 数组的常用函数
- lua堆栈操作常用函数学习二
- [学习应用]设置R语言在启动时自动加载常用包(packages)或函数(function)
- 深度学习常用激活函数
- JNI学习积累之一 ---- 常用函数大全
- 4000 pandas中的isin函数详解
- java学习 常用的java函数(四)
- salesforce 零基础学习(六十六)VF页面应善于使用变量和函数(二)常用函数的使用
- pandas数据处理常用函数demo之缺失值/merge/concact/绘图
- ThinkPHP 学习笔记<一>:ThinkPHP常用函数说明
- 最近在学习MFC,常用的一些函数【陆续更新中……】
- JNI学习积累之一 ---- 常用函数大全
- Java学习笔记——字符串常用函数
- pandas 常用的函数