python - Python/Numpy(CSV):查找值,附加另一个 csv
问题描述
我发现其他与此密切相关的帖子,但它们没有帮助。
我有一个 Master CSV 文件,我需要从第二列中找到特定的“字符串”。如下图所示:
Name,ID,Title,Date,Prj1_Assigned,Prj1_closed,Prj2_assigned,Prj2_solved
Joshua Morales,MF6B9X,Tech_Rep, 08-Nov-2016,948,740,8,8
Betty García,ERTW77,SME, 08-Nov-2016,965,854,15,12
Kathleen Marrero,KTD684,Probation, 08-Nov-2016,946,948,na,na
Mark León,GSL89D,Tech_Rep, 08-Nov-2016,951,844,6,4
ID 列是唯一的,所以我试图找到“KTD684”(例如)。找到后,我需要导出“Date”、“Prj1_Assigned”、“Prj1_closed”、“Prj2_assigned”和“Prj2_solved”的值。
导出到文件“KTD684.csv”(与 ID 相同),其中已经有可用的标题“日期,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 个输入文件中读取:
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看起来像这样
推荐阅读
- ruby-on-rails - 为什么设计注册编辑操作不需要参数?
- react-native - 在 react native 项目中,您在哪里设置 AWS pinpoint 的凭证配置?
- java - 检索目录中的文件名时出现问题
- office-js - 自定义函数的数据验证列表
- javascript - 对象操作(分组)
- r - 如何在没有特定日期且不超过 24 小时的情况下添加 lubridate 小时数?
- tabulator - 为什么在我单击标题之前分组不会激活,尽管在表构造函数中有 groupBy
- javascript - ReactJS - 来自网络摄像头的视频流不起作用
- php - 第一次加载页面后如何避免警报
- react-navigation - dangerouslyGetParent - 如果嵌套,则永远不会给出虚假信息