DataFrame基本操作
import pandas as pd import numpy as np pd.options.display.max_columns = 40 movie = pd.read_csv('data/movie.csv') two_cloumn = movie[['序号', '名称']] #选取多个DataFrame列 movie[['序号']].head() #选取一个DataFrame列 cols=['序号','名称'] two_cloumn=movie[cols] #赋值给一个列表,便于多选 type(movie[['序号']]) #<class 'pandas.core.frame.DataFrame'> type(movie['序号']) #<class 'pandas.core.series.Series'> movie.select_dtypes(include=['int64']) #使用select_dtypes(),选取整数列 movie.select_dtypes(include=['number']) #选取所有的数值列 movie.filter(like='序号').head() #通过filter()函数过滤选取多列 movie.filter(regex='\D').head() #通过正则表达式选取多列 movie.filter(items=['序号', '名称']).head() # filter()函数,传递列表到参数items,选取多列 new_column=['名称','序号'] movie2 = movie[new_column] #重新进行列排序 movie.shape #打印(行数,列数) movie.size #打印数据个数 movie.ndim #打印数据的维数 len(movie) #打印数据的长度,多少行 movie.count() #打印各个列的个数 movie.min() #打印各个列的最小值 movie.min(skipna=False) #设定skipna=False,没有缺失值的数值列才会计算结果 movie.describe() #打印各个列的描述信息 movie.describe(percentiles=[.01, .3, .99]) #使用percentiles参数指定分位数 movie.isnull().sum() #各列空值的个数 movie.isnull().head() #使用isnull方法将每个值转变为布尔值 movie.isnull().sum().head() #使用sum统计布尔值,返回的是Series movie.isnull().sum().sum() #对这个Series再使用sum,返回整个DataFrame的缺失值的个数,返回值是个标量 movie.isnull().any().any() #判断整个DataFrame有没有缺失值,方法是连着使用两个any movie[['memo']].max() #movie数据集的对象数据包含缺失值。 #默认条件下,聚合方法min、max、sum,不会返回任何值 movie.select_dtypes(['object']).fillna('').max() #要让pandas强行返回每列的值,必须填入缺失值。下面填入的是空字符串 movie = pd.read_csv('data/movie.csv') # movie + 5 # college数据集的值既有数值也有对象,整数5不能与字符串相加 (movie.filter(like='序号')+0.00001).round(2) # 保留2位小数 np.nan == np.nan # Pandas使用NumPy NaN(np.nan)对象表示缺失值。这是一个不等于自身的特殊对象: None == None # Python的None对象是等于自身的 5 > np.nan # 所有和np.nan的比较都返回False,除了不等于: movie.count() # 返回每列非缺失值的个数 movie.count(axis=0) # axis默认设为0 movie.count(axis='index') # 等价于axis='index' movie.count(axis='columns') # 统计每行的非缺失值个数 movie.sum(axis='columns').head() # 统计每行的非缺失值求和 movie.sum(axis='index').sort_values(ascending=False) #排序,从大到小 movie.median(axis='index') # 统计每列的非缺失值中位数
天道酬勤 循序渐进 技压群雄