У меня есть два CSV-файла, и я хотел бы сопоставить пару (набор из двух) значений int одного и того же типа из строки (от l oop до n строк) с соответствующими значениями во 2-м CSV-файле, в одном столбце, состоящем из повторяющихся значений одного и того же типа.
Пока что я написал этот код, но он занимает очень много времени, может быть, есть pythoni c сокращения для этой проблемы?
c1=0
c2=0
def append_list_as_row(file_name, list_of_elem):
# Open file in append mode
with open(file_name, 'a+', newline='') as write_obj:
# Create a writer object from csv module
csv_writer = writer(write_obj)
# Add contents of list as last row in the csv file
csv_writer.writerow(list_of_elem)
pairs = pd.read_csv('pairs.csv',delimiter=';')
df = pd.read_csv('02_Data_test.csv',delimiter=',')
foo = open('foo.csv', 'w')
with open('foo.csv', 'w', newline='') as outcsv:
writer1 = csv.DictWriter(outcsv, fieldnames = ["##","lac","cid","msisdn","imei","event_type","tstamp","long","lat","max_dist","cell_type","start_angle","end_angle","msisdn1"])
writer1.writeheader()
for i in range(0,122,1): #range(len(pairs)):
for j in range(0,174123,1): #range(len(df)):
if pairs.iloc[i,0]==df.iloc[j,3]:
c1+=1
print(i)
append_list_as_row('foo.csv', df.iloc[j,:])
if pairs.iloc[i,1]==df.iloc[j,3]:
c2+=1
print(i)
print(j)
print("")
append_list_as_row('foo.csv', df.iloc[j,:])
#if pairs.iloc[i,1]==df.iloc[j,3]:
# c2+=1
# print(i)
# print(j)
#append_list_as_row('foo.csv', df.iloc[j,:])
print("------------------------")
append_list_as_row('foo.csv', "")