pyTony's question is valid. Why split it up? But if you must, then my code above ought to work with a couple of changes. I forgot to open the output file for "write", and you probably want the first (header) row to be skipped:
data=[]
with open(<csv file name>) as fid:
lines=fid.read().split('\n')
for i in lines[1:]:
data.append(i.split(','))
data.sort(key=lambda x: x[3])
for d in data:
field=d[3]
with open('pc_Numbers_'+field+'.csv','a') as fid:
while d[3]=field:
fid.write(d+'\n')