使用Python操作csv文件:从另一个csv调用vlookup、插入列、删除行、循环

2024-04-28 07:23:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有100个csv文件,每个文件包含不同机构的发布数据,我希望对所有这些文件执行相同的操作:

1.从B1单元获取机构名称。这总是在“at”或“at”之后。例如“东北大学的出版物” 2.从另一个名为“Codes”的csv文件中获取匹配的机构代码。 例如“1286”。(东北大学)。 3.删除第1-14行(含B1单元机构名称) 4在文件中插入两个额外的列(A列和B列),标题如下:“Institution”和“InstitutionCode”,并在其中填充我有数据的所有行的相关信息。 (在上面的例子东北大学和1286)。在

我对Python还不熟悉,从我找到的参考资料中很难把这个脚本组合起来。 谁能帮帮我吗?在

以下是原始格式的数据图像

Data in original format

下面是所需结果的图像

Result required


Tags: 文件csv数据代码图像标题机构institution
1条回答
网友
1楼 · 发布于 2024-04-28 07:23:08

我可以给你代码,但是我会给你解释你如何自己编写代码。在

  1. 阅读代码文件并将机构和代码存储在字典中。 您可以在以下位置阅读有关读取csv文件的更多信息:https://pymotw.com/2/csv/或此处:https://pymotw.com/3/csv/。 每一行都将被表示为一个字符串列表,因此您可以通过它们的索引访问单元格元素。把机构名称变成键,把代码变成值。

  2. 在for循环中逐个读取csv文件。我将这些称为输入文件。为您读取的每个输入文件打开一个新文件进行写入。我将这些文件称为输出文件。

  3. 循环csv文件中的行。可以使用enumerate跟踪行号。你可以在这里找到这方面的信息,例如:http://book.pythontips.com/en/latest/enumerate.html

  4. 通过从第0行获取元素1来获取单元格B1的内容。

  5. 使用正则表达式查找机构名称。更多信息,例如:http://dev.tutorialspoint.com/python/python_reg_expressions.htm 然后从你在第1步中制作的字典中获取机构代码。

  6. 继续在行上循环,直到第一个元素等于“Title”。此行包含标题。在输出文件中写入“Institution”和“InstitutionCode”,后面跟着刚刚找到的头。为此,请将行(字符串列表)转换为元组(http://www.tutorialspoint.com/python/python_tuples.htm),并将其作为csv writer对象的writerow方法的参数(请参阅步骤1中的链接)。

  7. 然后,对于头行后面的每一行,创建一个机构名称和代码的元组,然后从刚刚读取的输入文件的行中获取信息,并将其作为csv writer对象的writerow方法的参数。

  8. 关闭输出文件。

需要考虑的一件事是,是否需要在输出文件中的单元格内容周围加引号。您可以在步骤1中的链接中了解这一点。字段分隔符也是如此。如果没有指定任何内容,则假定它们是逗号,但您可以更改它。在

我希望这有帮助!在

相关问题 更多 >