在 python excel sheet 中查找值
FInding Value from excel sheet in python
我有一个 excel sheet (data.xlxs),具有以下超过 200 行的数据模式。
NS71282379_67698209 123456001
NS71282379_56698765 123456002
NS71282379_67698209 123456003
.
.
.
现在在我的脚本中,我试图找到 123456003
作为 NS71282379_67698209
的对应值。在我的脚本中,我想用 excel sheet 中的值替换 123456003。
我使用 xlrd
导入 sheet 但没有找到任何方法可以轻松让我找到相应的值。
我怎样才能巧妙地做到这一点?
您可以按范围 (sheet.nrows) 迭代 Excel sheet 并根据行号获取行值。下面的脚本逐行迭代 Excel sheet 并打印出匹配值 123456003 的行。您可以修改它以满足您的要求
$cat test.py
import xlrd
def open_file(path):
wb = xlrd.open_workbook(path)
sheet = wb.sheet_by_index(0)
for row_num in range(sheet.nrows):
row_value = sheet.row_values(row_num)
if row_value[1] == 123456003:
print row_value
if __name__ == "__main__":
path = "data.xlsx"
open_file(path)
$python test.py
[u'NS71282379_67698209', 123456003.0]
您必须遍历行并找到您有兴趣更改的行。像这样:
for r in xrange(sheet.nrows):
row = sheet.row(r)
if row[0].value == "NS71282379_67698209":
row[1].value = "new value"
break
如果您需要重复执行此操作,您可以构建一个从第一列值到第二列单元格的映射:
cells = dict((row[0].value, row[1])
for row in (sheet.row(r) for r in xrange(sheet.nrows)))
cells["NS71282379_67698209"].value = "new value"
我有一个 excel sheet (data.xlxs),具有以下超过 200 行的数据模式。
NS71282379_67698209 123456001
NS71282379_56698765 123456002
NS71282379_67698209 123456003
.
.
.
现在在我的脚本中,我试图找到 123456003
作为 NS71282379_67698209
的对应值。在我的脚本中,我想用 excel sheet 中的值替换 123456003。
我使用 xlrd
导入 sheet 但没有找到任何方法可以轻松让我找到相应的值。
我怎样才能巧妙地做到这一点?
您可以按范围 (sheet.nrows) 迭代 Excel sheet 并根据行号获取行值。下面的脚本逐行迭代 Excel sheet 并打印出匹配值 123456003 的行。您可以修改它以满足您的要求
$cat test.py
import xlrd
def open_file(path):
wb = xlrd.open_workbook(path)
sheet = wb.sheet_by_index(0)
for row_num in range(sheet.nrows):
row_value = sheet.row_values(row_num)
if row_value[1] == 123456003:
print row_value
if __name__ == "__main__":
path = "data.xlsx"
open_file(path)
$python test.py
[u'NS71282379_67698209', 123456003.0]
您必须遍历行并找到您有兴趣更改的行。像这样:
for r in xrange(sheet.nrows):
row = sheet.row(r)
if row[0].value == "NS71282379_67698209":
row[1].value = "new value"
break
如果您需要重复执行此操作,您可以构建一个从第一列值到第二列单元格的映射:
cells = dict((row[0].value, row[1])
for row in (sheet.row(r) for r in xrange(sheet.nrows)))
cells["NS71282379_67698209"].value = "new value"