python:openpyxl取某一行、某一列、应用excel函数

这篇具有很好参考价值的文章主要介绍了python:openpyxl取某一行、某一列、应用excel函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

(话外:如何取某一列这个,真的是气死我气死我气死我拉!)

依然记录学习使用,属于昨天内容的进阶版!

如果想要基础操作,如创建excel,创建sheet,可以点击下方链接哦~

 python:openpyxl基础操作(一):创建.xlsx文件_豆包的戳苏的博客-CSDN博客

取某一行:

首先,我们快速创建一个表格:

from openpyxl import Workbook
from openpyxl import load_workbook
wb = Workbook()  # pay attention to the first letter

sheet_2 = wb.create_sheet('sheet_2')

for i in range(1, 20):
    for j in range(1, 20):
        sheet_2.cell(i, j, value=j*i)

python:openpyxl取某一行、某一列、应用excel函数 

数据够多了。

这时,我们需要了解到,行和列是怎么构成的。下面插播一条手动输入数据的代码(和其它内容无关,只是用来区别行和列的不同) 

rows = (
    (998, 997, 996),
    (787, 988, 876),
    (233, 445, 786)
)

for row in rows:
    sheet.append(row)

 

根据自己输入数据创建excel表格可知,每一行都是一个元组,每一列则不是元组(他是个generator)。 

这个认知非常重要!!

所以在取全部行的时候,很简单,我们只需要遍历一遍表格,得到单个元组,再遍历一遍元组,得到单个对象,并获取它的值。

这个非常简单,两次迭代即可搞定,就不放代码la。

可以选择直接print,也可以创建列表,放在列表里。

如果想要列表好看,就创建两个列表,组成一个二位列表……(就有点类似于dataframe拉嘿嘿串台了)。

我要输出某一行的值:

for i in sheet_2[5]:
    print(i.value, end='\t')
print()
'''
5	10	15	20	25	30	35	40	45	50	55	60	65	70	75	80	85	90	95	
'''

注意:这里,我输入的是5,他输出的是第五行。

和python中index的取值不同,这里输入0,会报错。因为行列都是从1开始的。

取某一列:

行,是一个元组,输出很方便,那么列怎么办呢?

如果上述代码,会直接报错。

我们可以先尝试输出全部的“列”:

list1 = []
for col1 in sheet_2.columns:
    list_1 = []
    for col_1 in col1:
        list_1.append(col_1.value)
    list1.append(list_1)

print(list1)
print(list1[0])

list1是二维列表,list_1是二维列表中的一维列表。

如果想要输出某一行,可以直接利用index。

但是这样很麻烦,数据太多的话,就很慢,能不能只单纯的输出一列?

能。

sheet_2_col = tuple(sheet_2.columns)

for i in range(0, 4):
    for j in sheet_2_col[i]:
        print(j.coordinate, j.value, end="\t")
    print()

以上我取的是1~4列,即:A-D列,输出的是其标号+值。但为什么我写了0?刚刚不是说,没有0吗?

因为我把“列”变成了元组。

元组可以有0。

其实这个方法在处理多数据的时候还是有弊端,我们看看下一个方法。

for i in sheet_2.rows:
    for j in i:
        if 'A' in j.coordinate:
            print(j.coordinate, j.value, end='\t')
    print()

这里只输出了A列。

依然需要遍历一遍才行。

应用excel里的函数:

for i in range(1, 20):
    sheet_2[f"T{i}"] = f'=AVERAGE(A{i}:S{i})'
    sheet_2[f"U{i}"] = f'=SUM(A{i}:S{i})'

sheet_2['V1'] = 'AVERAGE'
sheet_2['W1'] = 'Sum'
for i in range(2, 20):
    sheet_2[f"V{i}"] = f'=AVERAGE(B{i}:S{i})'
    sheet_2[f"W{i}"] = f'=SUM(B{i}:S{i})'

上面有很多小细节需要注意,{i}用来占位,f就是excel里面那个f,注意,引号在等号前面!

如果列表头要添加文字

很简单拉,直接修改单元格内容,并注意公式容纳数据的范围即可。 文章来源地址https://www.toymoban.com/news/detail-491200.html

到了这里,关于python:openpyxl取某一行、某一列、应用excel函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python读取excel某一列的数据

    把这几列分别读出来,并且每一列都对应一个数组  代码:

    2024年02月13日
    浏览(34)
  • chatgpt赋能python:如何用Python选取Excel表格的某一列

    Python 是一种高效的编程语言,广泛应用于数据分析和处理。它提供了丰富的库和工具,可以帮助我们处理各种格式的数据,包括 Microsoft Excel 文件。今天,我将向您介绍如何用 Python 选取 Excel 表格的某一列数据。 在开始本教程之前,请确保已安装以下 Python 库: pandas openpyx

    2024年02月10日
    浏览(41)
  • matlab快速选择矩阵中的某一行或某一列

    先在工作区中找到你想看的变量,点进去,然后展现的就是变量矩阵的具体数值。 然后在上方找到“变量”这一栏,有一个要你输入“行数列数 ”的东西。 举例,你如果想看矩阵的(1183,40)这个数据,那你就输进去相应的数字。如果是看第1183行,那就输入(1183,:)。列就同理

    2024年02月12日
    浏览(40)
  • exel表格中其列三对数据都相等,某一列的结果为1,有一对不相等则赋值为0,这一列的excel函数应该怎么写?

    该公式使用 IF 函数来进行条件判断: 如果 A2、B2 和 C2 三个单元格的值相等,即 AND(A2=B2, B2=C2) 的结果为真,则结果为 1; 否则,结果为 0。 将该公式应用到 D 列的其他行,即可根据三个数据列的相等情况设置 D 列的值。 注意: 公式中的单元格引用,需要根据你实际的数据位

    2024年02月13日
    浏览(31)
  • 【python】【pandas】dataframe把某一列放到第一列,或者把某一列插入到某位置

    输出结果: 在上述代码中,我们首先选择要移动到第一列的列名(这里选择了\\\'Age\\\'列)。然后,我们使用 pd.concat() 函数将选定的列与剩余的列连接起来,其中 axis=1 表示按列进行连接。 df.drop(columns=first_col) 将删除原始DataFrame中选定的列,以便在连接时只保留选定的列。 输出

    2024年02月13日
    浏览(45)
  • 【python】【pandas】读取DataFrame的某一列形成一个列表

    输出结果: 在上述代码中,我们创建了一个示例DataFrame df ,其中包含三列(\\\'A\\\'、\\\'B\\\'、\\\'C\\\'),每列都有一些示例值。 然后,我们使用 df.iloc[:, 1] 来访问DataFrame的第一列。这里的 iloc[:, 1] 表示选择所有行(使用 : ),并选择索引为1的列(即第二列)。 接下来,我们使用 tolist

    2024年02月11日
    浏览(33)
  • python dataframe 删除 选择 某一列满足指定条件的所有行

    python dataframe 删除某一列大于指定值的所有行 python dataframe 只保留某一列等于指定值的所有行 python dataframe 删除某一列等于指定值的所有行 Python matplotlib 画图 显示中文 中文乱码 无法显示负号 方式一,删除年份大于1999的所有行 方式二,只保留年份1999和2009的所有行 方式三,

    2024年02月12日
    浏览(38)
  • 用python获取.csv文件中某一列或者某些列

        参考资料:http://t.csdn.cn/HFTPy

    2024年02月13日
    浏览(32)
  • Python pandas库怎样根据某一列的数据将所有数据分类

    在数据处理中,数据分类是一项基础而重要的工作。本文将介绍如何使用Python pandas库,根据某一列的数据将所有数据分类。 1. 读取数据文件,生成数据框(DataFrame)对象 首先,需要读取数据文件,生成数据框(DataFrame)对象。这里以读取CSV格式的数据文件为例,代码如下:

    2024年02月07日
    浏览(33)
  • 【python】array数组添加一行或一列数据

    目录 0.环境 1.背景 2.具体实现 2.1思路 2.2具体实现  2.2.1 增加一列  2.2.2增加一行 3. 完整代码 windows + jupyter notebook跑代码 在实现数据可视化的时候,用了 numpy 的 array 类型的数组,需要手动在最后增加一列数据,所以查找了下如何实现,顺便也看到了增加一行数据,特此总结

    2024年02月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包