如何使用python从xlsx文件中检索每个人的第一行和最后一行?

时间:2017-01-04 15:41:15

标签: python excel

我对编程很新 - 我有一个关于读取和操作excel文件的python问题。我一直在尝试使用xlrd和openpyxl模块,但仍然无法完全按照我的要求进行操作。

我有两个excel文件:一个包含人员列表,他们的ID号以及他们在调查中的分数。在文件#1中,每个人只有一行。第二个文件包含人员ID号,日期和其他一些调查分数的列表。在文件#2中,每个人可以在不同日期的调查管理中拥有多行分数。

我的目标是从文件#2中获取每个人的ID号,找到文件#1中具有相同ID号的任何行,并从文件#1返回每人的第一行和最后一行。然后我想添加这些第一个&最后一行到文件#2中每个人的行的末尾(所以只是让每个人的行更长)。

我已经制作了两个假数据的测试文件,然后是我最喜欢的文件,以便人们可以更好地理解我想要做的...

文件#1:

ID  first_name  last_name   Score1  Score2  Score3

12-34-56-7  joe schmoe  2   7   3

98-76-54-3  jane    doe 3   5   8

99-11-99-1  sally   jones   5   6   9

文件#2:

ID  DATE    Score4  Score5  Score6

12-34-56-7  12/28/2000  8   9   4

12-34-56-7  12/29/2000  5   1   6

12-34-56-7  12/30/2000  2   5   5

12-34-56-7  12/31/2000  1   4   7

12-34-56-7  1/1/2001    4   6   3

12-34-56-7  1/2/2001    7   3   1

98-76-54-3  4/18/1999   9   2   2

98-76-54-3  9/6/2014    6   7   8

98-76-54-3  10/5/2020   3   8   9

99-11-99-1  6/7/2012    2   5   5

99-11-99-1  6/8/2012    5   2   4

抱歉,我知道这可能令人困惑......这就是我希望它最终看起来像什么。防爆。找到文件#1中与文件#2 (12-34-56-7)中第一个人具有相同ID号的任何行,并从文件#1中获取他的第一行和最后一行数据,然后将其添加到行的末尾在文件#2中。在文件#2中为每个人冲洗并重复。

ID  first_name  last_name   Score1  Score2  Score3  ID  DATE Score4 Score5  Score6  ID  DATE    Score4  Score5  Score6

12-34-56-7  joe schmoe  2   7   3   12-34-56-7  12/28/2000  8   9   4   12-34-56-7  1/2/2001    7   3   1

98-76-54-3  jane    doe 3   5   8   98-76-54-3  4/18/1999   9   2   2   98-76-54-3  9/6/2014    6   7   8

99-11-99-1  sally   jones   5   6   9   99-11-99-1  10/5/2020   3   8   9   99-11-99-1  6/8/2012    5   2   4

关于如何写这个的任何建议?再一次,我真的很擅长编写脚本,所以任何和所有帮助都会非常感激:)。

1 个答案:

答案 0 :(得分:0)

  1. 安装Openpyxl
  2. 阅读你的表2
  3. 将特定ID的每一行存储在2D数组中。 //将全部转换为字符串
  4. 阅读你的表1
  5. 根据ID
  6. 将名称附加到数组中
  7. 从数组中获取数据并将其写入excel表。 //转换回相应的数据类型。
  8. 如果您正在寻找语法。这个教程将帮助你。 Read this

    此问题this Stack-overflow也会对您有所帮助。