跟着ChatGPT学Python数据分析之Pandas使用方法
pandas介绍
pandas是一个基于NumPy的开源数据处理库,是Python语言的一个重要扩展库,提供了大量高级数据结构和数据分析工具。
pandas主要有两种数据结构:Series和DataFrame。Series是一维带标签的数组,可以存储不同类型的数据,类似于Python的列表;DataFrame则是二维的表格结构,可以看作是由Series组成的字典,每一列的数据类型可以不同,类似于Excel表格。
pandas可以用于数据清洗、数据转换、数据分析、数据可视化等任务,常用的操作包括数据筛选、数据排序、数据分组、数据聚合、数据透视表等。
使用pandas可以大大提高数据分析和处理的效率,同时也提供了大量方便的函数和方法,如read_csv()、read_excel()、pivot_table()、merge()等。pandas库的基本操作导入pandas库:import pandas as pd读取数据:df = pd.read_csv("data.csv") # 读取csv文件 df = pd.read_excel("data.xlsx") # 读取Excel文件查看数据:print(df.head()) # 打印数据前5行 print(df.tail()) # 打印数据后5行 print(df.sample(5)) # 打印5个随机行 print(df.describe()) # 打印数据统计信息选择数据:df["column_name"] # 选择单个列 df[["column_1", "column_2"]] # 选择多个列 df.loc[0] # 选择第1行数据 df.loc[0:4] # 选择第1-5行数据 df.loc[0:4, "column_name"] # 选择第1-5行数据的单个列 df.loc[df["column_name"] > 10] # 根据条件选择数据数据清洗:df.dropna() # 删除包含NaN的行 df.fillna(0) # 将NaN替换为0 df["column_name"].replace(1, 100) # 将所有值为1的替换为100数据分组:df.groupby("column_name").sum() # 对列分组并求和 df.groupby(["column_1", "column_2"]).mean() # 对多列分组并求平均值数据排序:df.sort_values("column_name") # 按列排序 df.sort_values("column_name", ascending=False) # 按列降序排序 df.sort_values(["column_1", "column_2"]) # 按多列排序
以上只是简单介绍了pandas库的一些基本操作,如果需要更深入的了解,可以参考官方文档。Excel数据实例演示
我有一个Excel表格的数据,表头有款式编码、颜色、规格、商品编码、名称、数量,我想根据名称来统计,每个规格的数量,用pandas写一个数据透视代码。
看看ChatGPT的回答:
可以使用 pandas 的 pivot_table 函数来实现,具体代码如下:import pandas as pd # 读取 Excel 数据,假设文件名为 example.xlsx,数据位于第一个工作表 df = pd.read_excel("example.xlsx", sheet_name=0) # 使用 pivot_table 函数生成透视表 pivot = pd.pivot_table(df, index="名称", columns="规格", values="数量", aggfunc="sum") # 输出透视表 print(pivot)
代码解释:首先使用 pd.read_excel 函数读取 Excel 文件,并将数据存储在一个 pandas 的 DataFrame 对象中。使用 pd.pivot_table 函数生成透视表,需要指定以下几个参数:df:要生成透视表的 DataFrame 对象;index:透视表中的行索引,这里选择使用"名称"列;columns:透视表中的列索引,这里选择使用"规格"列;values:透视表中的数据值,这里选择使用"数量"列;aggfunc:透视表中数据聚合方式,这里选择求和。最后使用 print 函数输出透视表。
这段代码将会根据名称来统计每个规格的数量,并将结果输出为一个透视表。
如果要将透视表保存为 Excel 文件,可以使用 to_excel 方法将数据写入新的 Excel 文件中。代码如下:import pandas as pd # 读取 Excel 数据,假设文件名为 example.xlsx,数据位于第一个工作表 df = pd.read_excel("example.xlsx", sheet_name=0) # 使用 pivot_table 函数生成透视表 pivot = pd.pivot_table(df, index="名称", columns="规格", values="数量", aggfunc="sum") # 将透视表保存为 Excel 文件 pivot.to_excel("pivot_table.xlsx", sheet_name="Sheet1")
代码解释:首先使用 pd.read_excel 函数读取 Excel 文件,并将数据存储在一个 pandas 的 DataFrame 对象中。使用 pd.pivot_table 函数生成透视表,参数设置和上面的例子一样。使用 to_excel 方法将透视表保存为一个新的 Excel 文件,需要指定以下几个参数:excel_writer:保存文件的路径和文件名;sheet_name:要保存到的工作表名称。
这段代码将会根据名称来统计每个规格的数量,并将结果保存为一个新的 Excel 文件 pivot_table.xlsx。
行使用名称和颜色来统计,列使用规格,使用数量求和,最后一列和最后一行加一个总计
可以使用pandas库中的pivot_table方法来实现。以下是代码示例:import pandas as pd # 读取Excel数据 df = pd.read_excel("your_file_name.xlsx") # 数据透视表 pivot_table = pd.pivot_table(df, index=["名称", "颜色"], columns=["规格"], values="数量", aggfunc="sum", margins=True, margins_name="总计") # 将结果写入新的Excel文件 pivot_table.to_excel("your_output_file_name.xlsx")
这段代码会读取名为"your_file_name.xlsx"的Excel文件,并根据名称和颜色来统计每个规格的数量,最后一列和最后一行会分别显示总计。最后,程序将结果写入名为"your_output_file_name.xlsx"的新Excel文件中。需要注意的是,需要安装pandas库才能运行以上代码。代码验证
最后在vscode里使用Jupyter Notebook来验证一下上面的代码是否可行import pandas as pd #导入pandas库# 读取 Excel 数据,读取文件名为 商品库存.xlsx的Excel文件,数据位于第一个工作表 df = pd.read_excel("商品库存.xlsx", sheet_name=0)# 使用 pivot_table 函数生成透视表 pivot_table = pd.pivot_table(df, index=["名称", "颜色"], columns=["规格"], values="数量", aggfunc="sum", margins=True, margins_name="总计")# 输出透视表 print(pivot_table)# 将透视表保存名为your_output_file_name.xlsx的Excel文件 pivot_table.to_excel("your_output_file_name.xlsx")
pandas运行结果