DataFrame
DataFrame是Pandas包提供的一种类似关系表的数据结构
定义
- 直接定义(很少使用)
pd.DataFrame()
参数可以是numPy、列表、字典、元组、Series等 - 导入定义(常用)
导入导出前提:需要知道当前工作目录的位置
导入:pd.read_csv( file)
写出:pd.to_type(file)
导入时,系统会自动增加index行,可以将参数index_col
设置为0来解决
查看
查看形状:属性shape
引用
- 按列名读取
写法一:列名出现在下标中
写法二:列名当作属性
写法三:列名行号一起用
写法四:属性名行号一起用
写法五:切片 - 按index读取
loc
属性:显式index - 按位置(既隐式index)
iloc
属性:隐式index
删除
- 切片后
del
或直接赋值给新数据框
参考数组过滤条件 - 方法
drop()
inplace = True
,就地修改
inplace = False
,另外返回一个值
缺失数据处理
判断一个数据框是否为空数据框:属性empty()
在Python基础语法中,None不能参加计算,NaN可以参加计算,而在Pandas中,二者一样,都可以参加计算,将None自动转换为np.nan(float类型)
补齐缺失值:
fill_value = 0
- 用均值补齐缺失值:
DataFrame.stack().mean()
mean()
按行计算,stack()
则是建立多级索引,一起用就可以得到整个数据框的均值
unstack()
则为撤销多级索引
常用函数
isnull()
:判断每个元素是否为空notnull()
:判断是否非空dropna()
:直接删除缺失值fillna()
:设置缺失值的补齐方式
可以设置method = "ffill 或 bfill
,既向前填充或向后填充
算术运算
原则一:先补齐显式index(新增索引对应值为NaN),得到相同的结构后,再进行计算
原则二:算术运算符“+、-”等会产生NaN值,如果想要默认填充的NaN改为指定值,建议不要使用算术运算符,而改用成员方法,如add()、sub()、mul()、div()
原则三:数据框与Series的计算规则——按行广播,先把行改为等长,行内不做循环补齐。只是一行一行的计算,不会跨行 广播
常用函数:
cumsum()
:依次按行向下加rolling().sum()
:计算相邻元素之和cov()
:协方差矩阵corr()
:相关系数矩阵T
:转置
大小比较:
如果比较对象是一个元组,元组长度需要和数据框的列数相等
统计信息
最常用的描述性统计方法之一:describe()
查看前几行head()
查看后几行tail()
频次统计:count()
排序
按值排序:sort_values()
按显式index排序:sort_index()
ascending = True表示升序,反之既降序
分组统计
groupy
函数:groupby(分组条件)[计算对象].mean()
同时计算多个函数的值,则使用方法aggtegate()
,将多个函数名以列表的形式枚举在aggragate()的参数中
替换函数可以使用方法apply()