我有一份工作我想自动化,希望得到一些帮助:)
我有一个制表符分隔的文件,包含三列(没有标题)。前两列包含标识符,而第三列包含数字值。看起来有点像:
ID1 ID2 0.123
ID3 ID4 0.456
ID5 ID6 0.789
到目前为止,我正在使用以下代码阅读此文件的列:
^{pr2}$太棒了。如果包含print语句,它将返回三个元组,其中包含三个相应列的条目。在
接下来我想做的是迭代另一个文件,找到与每个ID
项匹配的行,并用匹配行中的“name”字段项替换原始文件中的值。第三列需要保持不变,因为它表示两个id之间的交互。在
到目前为止,我有一个函数Change_Name
,它接受一个参数,打开另一个csv
文件,并对其进行迭代以找到包含与ID
匹配的行。一旦找到匹配项,它将打印该行上另一个字段的值。函数看起来有点像:
def Change_Name(ID):
file_csv = csv.DictReader(open('file.csv'))
for row in file_csv:
if row['ID'] == ID:
print(row['Name'])
但是,我希望实现的是Name
值被替换到与用来查找它的ID相同的位置。我已经搞乱了str.replace
,但是到目前为止,我已经能够生成一个与第一个文件结构相同的文件,但是将ID
替换为Name
。在
我希望我的问题有一定的道理,任何帮助我们都将不胜感激。在
编辑:我被要求展示我的另一个文件的例子和我所期望的。在
我的另一个文件看起来有点像:
ID, Name, att1, att2
ID1, matt, 8, abc
ID2, jo, 17, def
因此,如果我使用的是与上面所示类似的文件,我希望我的脚本替换ID1
和{
matt jo 0.123
ID3 ID4 0.456
ID5 ID6 0.789
等等。。。在
下面应该做你想做的。首先,它加载您的第二个文件(根据您的示例,我假设它是逗号分隔的csv)。每个条目都被存储在字典中。然后加载主制表符分隔的csv文件,并尝试用
ids
字典中的值替换前两列条目。如果条目不存在,它将为每个条目使用现有值:给你
^{pr2}$output.csv
包含:使用Python2.7.9测试
相关问题 更多 >
编程相关推荐