读取.xlsx并访问单元格值,但不按其位置访问

时间:2018-10-10 13:52:46

标签: python excel python-2.7 pandas

这是我的第一个问题,如果造成一些解释错误,请先抱歉。

我正在用python 2.7编码。 我写了一个.xlsx(Excel)文件(它可能是一个.xls,在这一点上我真的不需要宏+ VBA)。 Excel文件如下所示:

Excel screenshot

这些值与列名和行名链接。例如,我有一个名为“曲线1”的列和一个名为“ Number of extremum”的行。因此,如果curve1的极值为1,则在该单元格中写“ 1”。 我想采用此值以便在python脚本中进行操作。 我知道我可以将 xlrd模块 open工作簿一起使用,并将第1行(“极值数”)的值放在列表中,然后只取第一个(对应于“曲线1”列,因此对应的值是“ 1”),但这不是我想要的。

相反,我想通过仅向python脚本提供字符串“ Curve 1”和“ Number of extremum”来访问“ 1”单元格值,而python将在两者的会议上访问该单元格并采用其值:“ 1”。可能吗 ?

我想这样做是因为Excel文件会随时间变化并且可以移动单元格。因此,如果我尝试通过“位置编号”访问单元格值(如第1行,第1列),则在此位置添加一列或一行会遇到问题。如果xlsx文件中有一些编辑,我不想不必再次编辑python脚本。

非常感谢您。

2 个答案:

答案 0 :(得分:1)

使用熊猫非常简单。要获取所需的单元格,您可以使用loc,它使您可以根据需要指定行和列。

import pandas

df = pandas.read_excel('test.xlsx')
df.loc['N of extremum', 'Curve 1']

答案 1 :(得分:0)

Pandas是一个流行的第三方库,用于读取/写入数据集。您可以使用pd.DataFrame.at通过行和列标签进行有效的标量访问:

func imageThumbnailcall() {
    self.imageCaller( url: self.isShowingThermal ? self.thermalUrl : self.visualUrl, success: { (image) in
            self.imageLoaderIndicator.stopAnimating()
            self.backGroundImageView.image = image
            if self.isInVC {
            self.imageThumbnailcall()
            }
    }) {
        self.imageLoaderIndicator.stopAnimating()
    }
  }