python - Matching parts of two csv files to return certain elements -
hello looking index match in excel new python data sets far large excel now
i dumb question right down as possible cause data contains alot of irrelevant information problem
csv (has 3 basic columns)
name, date, value csv b (has 2 columns)
value, score csv c (i want create using python; 2 columns)
name, score all want enter date , have rows in csv match "date" , "score" associated "value" row in csv in csv b , returning in csv c along name of person. rinse , repeat through every row
any appreciated don't seem getting far
here working script using python's csv module:
it prompts user input date (format m-d-yy), reads csva row row check if date in each row matches inputted date.
if yes, checks if value corresponds date current row of matches of rows in csvb.
if there matches, write name csva , score csvb csvc.
import csv date = input('enter date: ').strip() = csv.reader( open('csva.csv', newline=''), delimiter=',') matches = 0 # reads each row of csva row_of_a in a: # removes whitespace before , after of each string in each row of csva row_of_a = [string.strip() string in row_of_a] # if date of row in csva has equal value inputted date if row_of_a[1] == date: b = csv.reader( open('csvb.csv', newline=''), delimiter=',') # reads each row of csvb row_of_b in b: # removes whitespace before , after of each string in each row of csvb row_of_b = [string.strip() string in row_of_b] # if value of row in csva equal value of row in csvb if row_of_a[2] == row_of_b[0]: # if csvc.csv not exist try: open('csvc.csv', 'r') except: c = open('csvc.csv', 'a') print('name,', 'score', file=c) c = open('csvc.csv', 'a') # writes name csva , value csvb csvc print(row_of_a[0] + ', ' + row_of_b[1], file=c) m = 'matches' if matches > 1 else 'match' print('found', matches, m) sample csv files:
csva.csv
name, date, value john, 2-6-15, 10 ray, 3-5-14, 25 khay, 4-4-12, 30 jake, 2-6-15, 100 csvb.csv
value, score 10, 500 25, 200 30, 300 100, 250 sample run:
>>> enter date: 2-6-15 found 2 matches csvc.csv (generated script)
name, score john, 500 jake, 250
Comments
Post a Comment