Pandas操作Excel

Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
菜鸟教程:https://www.runoob.com/pandas/pandas-tutorial.html

在这里插入图片描述

读取Excel

  • pd.read_excel(path,sheet_name,header)
    • path:excel文件路径
    • sheet_name:读取的sheet,可以为sheet名或数字,默认第1个sheet
    • header:表头行,默认为0,代表第1行为表头
读取并打印excel
import pandas as pd
data = pd.read_excel("data.xlsx")
print(data) 

在这里插入图片描述

获取行索引和列名
  • data.index:显示所有行索引
  • data.columns:显示所有列名
  • data.shape:显示数据的行数和列数。
    • data.shape[0]:行数
    • data.shape[1]:列数
import pandas as pd
data = pd.read_excel("data.xlsx")
print(data.index.values)    # 显示所有行索引:[0 1 2 3 4]
print(len(data.index))      # 显示行数:5
print(data.columns.values)  # 显示所有列名:['班级' '序号' '姓名']
print(len(data.columns))    # 显示列数:3
print(data.shape)			# 显示元组行列数:(5,3)
获取行、列
  • data[column_name]:选择指定的列;
  • data.loc[row_index, column_name]:根据行索引和列名选择,若只有一个参数,代表选择指定的行;
  • data.head(n):显示前 n 行数据;
  • data.tail(n):显示后 n 行数据;
  • data.sample(n):随机选择 n 行数据。
import pandas as pd
data = pd.read_excel("data.xlsx")
"""获取列"""
print(data["姓名"])    # 获取单列,类型为Series
print(data["姓名"].values)    # 输出:['解叮叮' '许世亮' '王者' '蒋建国' '宋艺然']
print(data[["姓名","班级"]])    # 获取多行,类型为DataFrame
print(data[["姓名","班级"]].values) # 二位列表
print(data.head(2))		# 获取前两行
print(data.tail(2))		# 获取后两行
print(data.sample(2))	# 随机选择2行
"""获取行"""
print(data.loc[0])	  # 获取单行,类型为Series
print(data.loc[0].values)
获取单元格
  • data.iloc[row_index, column_index]:根据行列数字索引选择,从行列均从0开始
import pandas as pd
data = pd.read_excel("data.xlsx")
"""以下输出均是:解叮叮"""
print(data.loc[0]["姓名"])	# 先行后列
print(data.loc[0,"姓名"])
print(data["姓名"][0])		# 先列后行
print(data.iloc[0,2])		 # 选择代表第1行,第3列
修改数据
import pandas as pd
data = pd.read_excel("data.xlsx")
"""新增、修改行"""
data["班级"] = [2,3,4,5,6]	# 修改
data["备注"] = "无"		   # 新增,值都为“无”
"""新增、修改列"""
data.loc[1] = [2,1002,"嘻嘻嘻"]	# 修改
data.loc[len(data.index)] = [6,1006,"哈哈哈"]	# 新增
data.loc[len(data.index)] = {"班级":7,"序号":1007,"姓名":"咻咻咻"} # 新增
"""修改单元格的值"""
data.loc[0,"姓名"] = "张三"
data.iloc[1,2] = "李四"
遍历所有值
import pandas as pd
data = pd.read_excel("data.xlsx")
"""先获取二维列表格式的值,然后遍历二维列表"""
for row in data.values:	# 遍历所有行
    for value in row:	# 遍历行的每列值
        print(value,end=",")
    print()
"""根据行索引和列名遍历"""
for row_index in data.index:
    for column_name in data.columns:
        print(data.loc[row_index, column_name],end=",")
    print()
"""根据行列的数字索引遍历"""
for i in range(data.shape[0]):
    for j in range(data.shape[1]):
        print(data.iloc[i, j],end=",")
    print()

在这里插入图片描述

写入Excel

  • data.to_excel(excel_writer,sheet_name,index……)
    • excel_writer:可以是文件路径或者excel对象。
    • sheet_name:工作表名,默认“Sheet1”。添加多个sheet是必须指定,否则会发生覆盖。
    • index:是否显示索引,True代表显示,False代表不显示,默认True。
单个sheet写入
import pandas as pd
data = pd.DataFrame({'One': [1, 2, 3]})
data.to_excel('test.xlsx',index=False)
多个sheet写入同一个Excel
import pandas as pd
data1 = pd.DataFrame({'One': [1, 2, 3]})
data2 = pd.DataFrame({'Two': [4, 5, 6]})
writer = pd.ExcelWriter('test.xlsx')
data1.to_excel(writer, sheet_name='Sheet1', index=False)
data2.to_excel(writer, sheet_name='Sheet2', index=False)
writer.close()

数据计算

  • data.count():计算每列非缺失值的数量。
  • data.mean():计算每列的平均值。
data = pd.read_excel(excel_path)
print(data["班级"].count())
print(data["班级"].mean())
print(data.groupby("班级").agg({'班级': 'count'}))	# 以班级分组,显示各个班级人数
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信息技术王凤龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值