程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

零基础学Python——简单操作excel

hfteth 2024-12-27 17:32:25 技术文章 18 ℃

没有基础能不能学会Python?二胎妈妈准备挑战一下,这是我学习Python的第22天,继续记录我的学习内容,方便记忆和复习。

今天学习的主题为:使用python对excel进行简单操作,包括对excel进行筛选,列求和,将数据导出到excel。

需求:原始表格表头为:

排名 球员 球队 进球(点球)出场次数 射门 射正

现要求对球队“曼联”的射门总数和射正总数进行统计,并导出为“曼联.xlsx”。

代码实现:

import pandas as pd #导入pandas模块
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
# 解决行业显示不全问题,设置默认输出最大行和最大列为1000
pd.set_option('display.max_rows',1000)
pd.set_option(
'display.max_columns',1000)
# 读取文件,且将“排名”列设置为索引,得到df是一DataFrame类型的数据
df=pd.read_excel('data.xlsx',index_col="排名")
#显示前5条数据
print(df.head())
#显示所有数据
print(df)
# 对该excel中数据进行相关操作:
"""
注意:抽取数据的三中方式:
1.直接筛选某一个元素格式为:.iat[x,y],下,x行索引的位置(从0开始),y是列索引的位置(同样从0开始)
2.基于位置的查询:.iloc[] ,接受一个或多个整数索引作为参数。
可以用它来选择单个元素、一行或多行、一列或多列,甚至是 DataFrame 的子集
3.基于行列名称的查询:.loc[]
"""
# 基于位置取元素。找到第4行第5列的值
print(df.iat[3,4],type(df.iat[3,4]))
# 基于位置取行或列,取第1-3行,4-5列的值
print(df.iloc[0:2,3:5],type(df.iloc[0:2,3:5]))
# 返航4-5列数据
print(df.iloc[:,3:5])
# 返回2-6行数据
print(df.iloc[1:6,:])
# 基于列名称取值:球队为曼联的书友数据:
print(df.loc[df["球队"]=="曼联"])
# 统计球队为曼联的出场次数,射门次数和射正次数
df=df.loc[df["球队"]=="曼联"]
cc=df[
"出场次数"].sum()
sm=df[
"射门"].sum()
sz=df[
"射正"].sum()
# 注意此处是[["曼联",cc,sm,sz]],不是["曼联",cc,sm,sz]
# ["曼联",cc,sm,sz]是一个列表
# pd.DataFrame 需要的是二维的结构,所以需要[["曼联",cc,sm,sz]]
data=[["曼联",cc,sm,sz]]
columns=[
"球队","出场次数","射门数","射正数"]
# 创建DataFrame的第一种方法
df_new=pd.DataFrame(data=data,columns=columns)
# 创建DataFrame的第二种方法,注意index=[]必须包含进去
"""df_new=pd.DataFrame(
{"球队":"曼联",
"出场次数":df["出场次数"].sum(),
"射门数":df["射门"].sum(),
"射正数":df["射正"].sum()
},index=[0]
)
"""
print(df_new)
# 将结果导出到曼联.xlsx中
df_new.to_excel("曼联.xlsx")

实现结果:

球队 出场次数 射门数 射正数

0 曼联 38 114 55

最近发表
标签列表