资讯专栏INFORMATION COLUMN

Python Pandas读取修改excel操作攻略

frolc / 2691人阅读

环境:python 3.6.8

以某米赛尔号举个例子吧:


>>> pd.read_excel("1.xlsx", sheet_name="Sheet2")
     名字   等级 属性1   属性2  天赋
0  四九幻曦  100  自然  None  21
1  圣甲狂战  100  战斗  None   0
2  时空界皇  100   光    次元  27

我们在这里使用了pd.read_excel()函数来读取excel,来看一下read_excel()这个方法的API,这里只截选一部分经常使用的参数:

pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)
io:很明显, 是excel文件的路径+名字字符串

(有中文的话python2的老铁需要使用decode()来解码成unicode字符串)
例如:

>>> pd.read_excel("例子".decode("utf-8))
sheet_name:返回指定的sheet
如果将sheet_name指定为None,则返回全表
如果需要返回多个表, 可以将sheet_name指定为一个列表, 例如["sheet1", "sheet2"]

可以根据sheet的名字字符串或索引来值指定所要选取的sheet

>>> # 如:
>>> pd.read_excel("1.xlsx", sheet_name=0)
>>> pd.read_excel("1.xlsx", sheet_name="Sheet1")
>>> # 返回的是相同的 DataFrame
name:如果没有表头, 可用此参数传入列表做表头
header:指定数据表的表头,默认值为0, 即将第一行作为表头
index_col:用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。一般可以设定index_col=False指的是pandas不适用第一列作为行索引。

usecols:读取指定的列, 也可以通过名字或索引值

>>> # 如:
>>> pd.read_excel("1.xlsx", sheet_name=1, usecols=["等级", "属性1"])
>>> pd.read_excel("1.xlsx", sheet_name=1, usecols=[1,2])
>>> # 返回的是相同的 DataFrame

直到某一天泰格尔升了一级, 可以这样改一下, 当然用.iloc.loc对象都可以

>>> # 读取文件
>>> data = pd.read_excel("1.xlsx", sheet_name="Sheet1")

>>> # 找到 等级 这一列,再在这一列中进行比较
>>> data["等级"][data["名字"] == "泰格尔"] += 1
>>> print(data)

LOOK!他升级了!!

>>> data
     名字   等级 属性1   属性2  天赋
0  艾欧里娅  100  自然     冰  29
1   泰格尔   81   电    战斗  16
2  布鲁克克  100   水  None  28

现在我们将它保存

data.to_excel("1.xlsx", sheet_name="Sheet1", index=False, header=True)
index:默认为True, 是否加行索引, 直接上图吧!

左为False, 右为True
header:默认为True, 是否加列标, 上图吧!

左为False, 右为True
io, sheet_name参数用法同函数pd.read_excel()

如果我们多捕捉几只或者多加几种属性怎么办呢?这里给出参考:

新增列数据:
data["列名称"] = [值1, 值2, ......]
>>> data["特性"] = ["瞬杀", "None", "炎火"]
>>> data
     名字   等级 属性1   属性2  天赋    特性
0  艾欧里娅  100  自然     冰  29    瞬杀
1   泰格尔   80   电    战斗  16  None
2  布鲁克克  100   水  None  28    炎火

新增行数据,这里行的num为excel中自动给行加的id数值
data.loc[行的num] = [值1, 值2, ...], (注意与.iloc的区别)

>>> data.loc[3] = ["小火猴", 1, "火", "None", 31, "None"]
>>> data
     名字   等级 属性1   属性2  天赋    特性
0  艾欧里娅  100  自然     冰  29    瞬杀
1   泰格尔   80   电    战斗  16  None
2  布鲁克克  100   水  None  28    炎火
3   小火猴    1   火  None  31  None

说完了增加一行或一列,那怎样删除一行或一列呢?可以使用.drop()函数

>>> # 删除列, 需要指定axis为1,当删除行时,axis为0
>>> data = data.drop("属性1", axis=1) # 删除`属性1`列
>>> data
     名字   等级   属性2  天赋    特性
0  艾欧里娅  100     冰  29    瞬杀
1   泰格尔   80    战斗  16  None
2  布鲁克克  100  None  28    炎火
3   小火猴    1  None  31  None

>>> # 删除第3,4行,这里下表以0开始,并且标题行不算在类, axis用法同上
>>> data = data.drop([2, 3], axis=0)
>>> data
     名字   等级 属性2  天赋    特性
0  艾欧里娅  100   冰  29    瞬杀
1   泰格尔   80  战斗  16  None

>>> # 保存
>>> data.to_excel("2.xlsx", sheet_name="Sheet1", index=False, header=True)

大家具体可以参考官网提供的API:http://pandas.pydata.org/pand...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43190.html

相关文章

  • 运用Python制作当地Excel的查看与形成程序流程难题

      近期碰到这样的一种业务需求创建一个程序流程有简单的查询入口完成Excel的查看与形成,今日教给大家运用Python制作当地Excel的查看与形成程序流程,感兴趣的小伙伴来了解一下吧一起了解一下吧  序言  今日教给大家运用Python制作当地Excel的查看与形成程序流程  要求  创建一个程序流程有简单的查询入口完成Excel的查看与形成  实验步骤  1开启一个exe弹出来一种页面  2有...

    89542767 评论0 收藏0
  • python 做数据分析:pandasexcel 应用初探

    摘要:今天要分享的是,用来写。数据处理环节效率低下,易受干扰。问题排查难以溯源。一旦数据报告有误,想要定位问题所在,常常需要从头开始复盘。结果和上面结果结构是一致的。这是官网的文档,但是却不完全适用目前的场景。 大毛 岂安科技业务风险分析师 多年订单业务反欺诈经验,负责岂安科技多款产品运营工作。 上回笔者分享过一些 pandas 的常用数据查询语法,但是数据查询对于 pandas 而言只是冰...

    aervon 评论0 收藏0
  • python 做数据分析:pandasexcel 应用初探

    摘要:今天要分享的是,用来写。数据处理环节效率低下,易受干扰。问题排查难以溯源。一旦数据报告有误,想要定位问题所在,常常需要从头开始复盘。结果和上面结果结构是一致的。这是官网的文档,但是却不完全适用目前的场景。 大毛 岂安科技业务风险分析师 多年订单业务反欺诈经验,负责岂安科技多款产品运营工作。 上回笔者分享过一些 pandas 的常用数据查询语法,但是数据查询对于 pandas 而言只是冰...

    张宪坤 评论0 收藏0
  • Pandas之旅(一): 让我们把基础知识一次撸完,申精干货

    为什么你需要pandas 大家好,今天想和大家分享一下有关pandas的学习新的,我因工作需要,从去年12月开始接触这个非常好用的包,到现在为止也是算是熟悉了一些,因此发现了它的强大之处,特意想要和朋友们分享,特别是如果你每天和excel打交道,总是需要编写一些vba函数或者对行列进行groupby啊,merge,join啊之类的,相信我,pandas会让你解脱的。 好啦,闲话少说,这篇文章的基础...

    tuomao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<