1.查询
>>>df.head(6) 返回数据表的前6行
>>>df.info() 返回数据表的基本信息,包括行数、列数、列名、数据类型、非空值个数、内存占用等。
>>>df.index 返回数据表的行索引
>>>df.columns 返回数据表的列名
>>>df.dtypes 返回数据表的每一列的数据类型,例如int、float、object等。
>>>df.values 返回数据表的值,即每一行每一列的具体数据。
2. 索引操作(loc:按索引取、iloc:按下标取)
>>>df.iloc[0:5,1:3] 返回第0到第4行(不包括第5行),第1到第2列(不包括第3列)的数据。
>>>df = df.set_index('Name') 返回新的数据表,索引为Name的列的值
>>>df.loc['Heikkinen,Miss. Laina'] 返回索引为’Heikkinen, Miss. Laina’的行数据。
>>>df.loc['Heikkinen, Miss. Laina':'Allen, Mr. William']
返回索引为’Heikkinen, Miss. Laina’到‘Allen, Mr. William’的行数据,包括两个索引。
◈index(可以用来访问或修改行索引)
>>>修改行索引 df.index = ['a', 'b', 'c', 'd', 'e']
◈reindex(根据给定的索引/标签进行重新排列)
>>>重新排列行索引 df.reindex(['e', 'd', 'c', 'b', 'a'])
>>>重新排列列标签 df.reindex(columns=['Gender', 'Age', 'Name'])
3.读写操作
>>> 取出一列作为series s1 =df['a'] 或 s1 =df.loc[:,'a']
>>> 取出多列作新的数据表 s2 =df[['a']]、s2=df.loc[[1,2],['a']]
>>> 条件读取 df[(df['a']>7)]、df[(df['a']>7)&(df['b']<5)]
>>> 取出一行成为series df.iloc[0]
4.缺失值查看及处理
◈检测空值
>>>查询数据表中的空值 pd.isnull(df)
>>>查询含有空值的行 df[df.isnull().any(axis=1)]
>>>查询含有空值的列 df.loc[:,df.isnull().any()]
>>>查询a列为空值的行 df.query('a.isnull()',endine='python')
◈填充空值
>>>用指定的值填充空值 df.fillna({‘name’:’baby’,’age’:10})
>>>用前一个或后一个非空值来填充空值 df.fillna(method="ffill")
>>>用函数或lambda表达式来填充空值 df.fillna(lambda x:x.mean())
◈删除空值
>>>删除缺少所有元素的行 df.dropna(how='all')
>>>删除缺少所有元素的列 df.dropna(axis=1, how='all')
5.数据处理
◈重命名
>>>使用映射重命名列 df.rename(columns={‘A’:’a’,’B’:’c’})
>>>使用映射重命名索引 df.rename(index={0:’x’,1:’y’,2:’z’})
>>>重命名所有列 df.columns=[‘a’ , ’b’ , ’c’]
◈groupby操作(分组、聚类)
>>>分成不同的组并应用一些函数,如求和,均值,计数等。
例1:按照性别分组,并计算每组的平均年龄和总工资
df.groupby("gender").agg({"age": "mean", "salary": "sum"})
例2:按照地区分组,并计算每个地区的电影评分的平均数
df['地区'].groupby(df['评分']).mean()
◈map方法
针对series里的每个元素进行函数操作。
>>>使用lambda函数:令所有人年龄加上88. df['age'].map(lambda x: x+88)
>>>性别栏,把f换成女,m换成男. df['gender'].map({'f':'女','m':'男'})
>>>使用自定义函数,这里map只接受一个参数,即传入的x
◈排序和
>>>按照索引进行升序排序 df.sort_index(inplace=True)
>>>按值排序 df.sort_values(by='b')
◈算术运算
例子: