为了账号安全,请及时绑定邮箱和手机立即绑定

Python/Numpy(CSV):查找值,附加另一个 csv

Python/Numpy(CSV):查找值,附加另一个 csv

森林海 2021-08-17 18:13:59
我发现其他帖子与此密切相关,但它们没有帮助。我有一个 Master CSV 文件,我需要从第二列中找到特定的“字符串”。如下图:Name,ID,Title,Date,Prj1_Assigned,Prj1_closed,Prj2_assigned,Prj2_solvedJoshua Morales,MF6B9X,Tech_Rep, 08-Nov-2016,948,740,8,8Betty García,ERTW77,SME, 08-Nov-2016,965,854,15,12Kathleen Marrero,KTD684,Probation, 08-Nov-2016,946,948,na,naMark León,GSL89D,Tech_Rep, 08-Nov-2016,951,844,6,4ID 列是唯一的,因此我试图找到“KTD684”(例如)。找到后,我需要导出“Date”、“Prj1_Assigned”、“Prj1_closed”、“Prj2_assigned”和“Prj2_solved”的值。导出将是一个文件“KTD684.csv”(与 ID 相同),其中已经有可用的标题“Date,Prj1_Assigned,Prj1_closed,Prj2_assigned,Prj2_solved”到目前为止(因为我是一名非程序员)我还没有能够起草这个,但可以请指导我:查找包含元素“KTD684”的行。从该行中选择以下值:['Date,Prj1_Assigned,Prj1_closed,Prj2_assigned,Prj2_solved']请附加带有 ID 名称本身的文件('KTD684.csv')我需要为 45 个用户 ID 执行此操作,现在在公司招聘时为 195。我尝试编写 excel 宏(也没有工作),但我觉得 python 是最可靠的。我知道我至少需要展示基本进度,但是在尝试向某人学习 2 个多月之后,我仍然无法在此 csv 中找到该元素。
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

如果我正确理解您的问题;您需要从 2 个输入文件中读取:


1 包含您要查找的用户 ID


2 包含与用户相关的项目数据


以这种方式,这样的事情会在文件 2 中找到您在 1 中指定的所有用户,并将它们写出到 result.csv


在 search_for.csv 中指定您的搜索 ID。请记住,这将在您每次运行时重新写入您的 result.csv。


import csv

import sys

import os



inputPatterns = open(os.curdir + '/search_for.csv', 'rt')


# Reader for the IDs (users) you are looking to find (key)

reader = csv.reader(inputPatterns)


ids = []


# reading the IDs you are looking for from search_for.csv

for row in reader:

    ids.append(row[0])

inputPatterns.close()


# Let's see if any of the user IDs we are looking for has any project related info

# if so write them to your output CSV

for userID in ids:

    # Organization list with names and Company ID and reader

    userList = open(os.curdir + '/users.csv', 'rt')

    reader = csv.reader(userList)


    # This will be the output file

    result_f = open(os.curdir + "/" + userID + ".csv", 'w')

    w = csv.writer(result_f)

    # Writing header information

    w.writerow(['Date', 'Prj1_Assigned', 'Prj1_closed', 'Prj2_assigned', 'Prj2_solved'])


    # Scanning for projects for user and appending them

    for row in reader:

        if userID == row[1]:

            w.writerow([row[3], row[4], row[5], row[6], row[7]])

    result_f.close()

    userList.close()

例如,search_for.csv看起来像这样

//img1.sycdn.imooc.com//611b8c0f0001285f00860048.jpg

查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信