Pandas DataFrame基础知识
1.1 简介
Pandas 是 Python 编程语言的一个软件库,用于数据操作和分析。它提供了强大的数据结构,特别是 DataFrame,用于处理结构化数据。DataFrame 类似于电子表格,可以存储多种类型的数据,并支持各种数据操作,包括索引、选择、过滤、合并和聚合数据。Pandas 还提供了用于读取和写入各种数据格式(如 CSV、Excel、SQL 数据库等)的工具,使数据的导入和导出变得非常简单。Pandas 是数据科学和机器学习领域的重要工具之一,广泛应用于数据清洗、数据转换、数据可视化等任务。
1.2 加载数据集
1.2.1从csv中读取数据
import pandas as pd # 读取 CSV 文件 df = pd.read_csv('file.csv')
1.2.2从Excel中读取数据
import pandas as pd # 读取 Excel 文件的指定工作表 df = pd.read_excel(r'E:\\PycharmProjects\\pandas学习\\超市.xls', sheet_name='订单') print(df.head())#调用head方法,只显示前五行数据 print(type(df)) #检查返回的是不是DataFrame print(df.shape) #返回行数和列数 print(df.columns) #返回列名 print(df.dtypes)#获取每列的dtype print(df.info())#获取更多数据信息
1.2.3从json中读取数据
import pandas as pd # 读取 JSON 文件 df = pd.read_json('file.json')
1.3 查看列、行和单元格
1.3.1 获取列子集
import pandas as pd # 读取 Excel 文件的指定工作表 df = pd.read_excel(r'E:\\PycharmProjects\\pandas学习\\超市.xls', sheet_name='订单') 订单ID_df=df['订单 ID'] print(订单ID_df.head())#只显示前五行数据 print(订单ID_df.tail())#只显示后五行数据 #获取多列数据 多列数据_df=df[['订单 ID','类别','区域']] print(多列数据_df.head())#只显示前五行数据
1.3.2 获取行子集
import pandas as pd # 读取 Excel 文件的指定工作表 df = pd.read_excel(r'E:\\PycharmProjects\\pandas学习\\超市.xls', sheet_name='订单') print(df.head())#只显示前五行数据 print(df.loc[0]) #获取第1行 print(df.loc[99]) #获取第100行 #通过shape的第一个值获取行数 number_of_rows=df.shape[0] last_row_index=number_of_rows-1 #获取最后一行数据 print(df.loc[last_row_index]) #获取最后一行数据 print(df.tail(n=1)) #获取多行 print(df.loc[[0,99,999]]) #通过行号获取行:iloc print(df.iloc[-1])
1.3.3 混合
import pandas as pd # 读取 Excel 文件的指定工作表 df = pd.read_excel(r'E:\\PycharmProjects\\pandas学习\\超市.xls', sheet_name='订单') #使用loc获取列和行的子集 print(df.loc[:,['客户名称','城市']]) print(df.loc[0:99,['客户名称','城市']]) #使用iloc获取列和行的子集 print(df.iloc[:,[6,8,-1]]) print(df.iloc[0:100,[6,8,-1]])
1.4 分组和聚合计算
1.4.1 分组方式
import pandas as pd # 读取 Excel 文件的指定工作表 df = pd.read_excel(r'E:\\PycharmProjects\\pandas学习\\超市.xls', sheet_name='订单') #根据消费者类型分组求销售额的总和 print(df.groupby('细分')['销售额'].sum()) #多字段分组聚合 print(df.groupby(['细分','区域'])[['销售额','数量']].sum()) #平铺dataframe print(df.groupby(['细分','区域'])[['销售额','数量']].sum().reset_index())
1.4.2 分组频率计数
import pandas as pd # 读取 Excel 文件的指定工作表 df = pd.read_excel(r'E:\\PycharmProjects\\pandas学习\\超市.xls', sheet_name='订单') #使用nunique()方法计算series中唯一值的数量 print(df.groupby(['细分'])['区域'].nunique())
#使用value_counts()方法计算series中出现的次数
print(df.groupby(['细分'])['区域'].value_counts())