前言
在应用 Pandas
进行数据分析时,咱们须要常常进行查问和统计分析。
然而 Pandas
是如何进行查问和统计分析得嘞, let’s go :
数据筛选查问
-
通过列名索引筛选数据:
import pandas as pd data = {'name': ['Tom', 'Jerry', 'Lucy', 'Amy'], 'age': [18, 19, 20, 21], 'gender': ['M', 'M', 'F', 'F']} df = pd.DataFrame(data) # 选取 'name' 属性 df['name'] # 选取 'age' 和 'gender' 属性 df[['age', 'gender']]
-
通过地位索引筛选数据:
# 通过地位索引选取第一行数据 df.iloc[0] # 通过地位索引选取第一行和第二行数据 df.iloc[0:2]
-
通过布尔索引筛选数据:
# 选取年龄大于等于 20 的记录 df[df['age'] >= 20] # 选取性别为女的记录 df[df['gender'] == 'F']
数据统计分析
Pandas
提供丰盛的统计函数,能够不便地进行数据分析。
-
描述性统计分析:
# 统计数值型数据的根本描述性统计信息 df.describe() # 统计各属性的非空值数量 df.count() # 统计各属性的平均值 df.mean() # 统计各属性的方差 df.var() # 统计各属性的标准差 df.std()
-
分组统计分析:
# 依照性别分组,统计年龄均值 df.groupby('gender')['age'].mean() # 依照性别和年龄分组,统计人数 df.groupby(['gender', 'age'])['name'].count()
-
穿插表剖析:
# 结构一个穿插表,统计不同性别和年龄的人数 pd.crosstab(df['gender'], df['age'])
数据排序
-
依照某列数据进行升序排列:
df.sort_values(by='age')
-
依照某列数据进行降序排列:
df.sort_values(by='age', ascending=False)
数据聚合
-
对整个 DataFrame 进行聚合操作:
# 聚合函数:求和、均值、中位数、最大值、最小值 df.aggregate([sum, 'mean', 'median', max, min])
-
对某列数据进行聚合操作:
# 统计年龄平均值 df['age'].mean() # 统计年龄总和 df['age'].sum() # 统计年龄最大值 df['age'].max()
解决缺失数据
-
判断数据是否为缺失值:
# 返回一个布尔型 DataFrame,表明各元素是否为缺失值 df.isnull()
-
删除缺失值所在的行或列:
# 删除所有含有缺失值的行 df.dropna() # 删除所有含有缺失值的列 df.dropna(axis=1)
-
用指定值填充缺失值:
# 将缺失值应用 0 填充 df.fillna(0)
数据去重
-
对 DataFrame 去重:
# 依据所有列值的重复性进行去重 df.drop_duplicates() # 依据指定列值的重复性进行去重 df.drop_duplicates(subset=['name', 'age'])
-
对 Series 去重:
# 对 'name' 列进行去重 df['name'].drop_duplicates()
数据合并
-
横向(按列)合并 DataFrame:
# 创立一个新的 DataFrame other_data = {'name': ['Tom', 'Jerry', 'Lucy', 'Amy'], 'score': [80, 90, 85, 95]} other_df = pd.DataFrame(other_data) # 将两个 DataFrame 在列上合并 pd.concat([df, other_df], axis=1)
-
纵向(按行)合并 DataFrame:
# 创立一个新的 DataFrame other_data = {'name': ['Kate', 'Jack'], 'age': [19, 20], 'gender': ['F', 'M']} other_df = pd.DataFrame(other_data) # 将两个 DataFrame 在行上合并 pd.concat([df, other_df], axis=0)
数据透视表
-
创立数据透视表:
# 统计不同性别和年龄的人数,以 'gender' 为行、'age' 为列,'name' 计数 pd.pivot_table(df, values='name', index='gender', columns='age', aggfunc='count')
完结
本文由 mdnice 多平台公布