Aşağıdaki gibi bir csv dosyası var ve temsilci bilgileri (2. ve 3. sütun) dayalı 4. sütun başlayarak harfi (A veya B) dönüştürmek istiyorum. Ancak '0' sayısı '0' olarak kalacaktır. Sonra görebildiğim dönüştürdükten sonraVerilen bilgilere göre harfi dönüştür?
Name, A_Rep,B_Rep,id_1,id_1,id_2,id_2,... # header line
rs1, G, T, A, A, A, B,...
rs2, A, G, 0, 0, A, B,...
...
Name, A_Rep,B_Rep,id_1,id_1,id_2,id_2,...
rs1, G, T, G, G, G, T,...
rs2, A, G, 0, 0, A, G,...
Aşağıda, kod bitmiş, ama yine de A_Rep = line[1] IndexError: list index out of range
mesajı gösteren olduğunu.
import csv
input = 'input.csv'
with open('output.csv', 'w') as output:
data = csv.reader(input, delimiter=',')
for line in data:
if line[0].startswith('Name'): # Retrieve the header line
output.write("{}\n".format(','.join(line)))
else:
stuff = []
Name = line[0]
A_Rep = line[1] ##IndexError: list index out of range
B_Rep = line[2] ##IndexError: list index out of range
for samplefield in line[3:]:
if samplefield == 'A':
stuff.append(A_Rep)
elif samplefield == 'B':
stuff.append(B_Rep)
elif samplefield == '0':
stuff.append('0')
else:
sys.exit('Check: {}'.format(','.join(line)))
output.write("{},{},{},{}\n".format(Name, A_Rep, B_Rep, ','.join(stuff)))
Bunu nasıl çözeceğini bilen var mı, yoksa aynı hedefi yapmanın etkili bir yolu mu?
Sen kullanamazsınız '-' değişken isimlerinde. bu, semantik olarak çıkarmaya eşittir. –
Bu garip. Bu satırdaki * "SyntaxError: operatöre atanamaz" olmanız gerekir. Bunun programınızın kesin bir kopyası olduğuna emin misin? –
python 2.7 kullandığınızdan emin misiniz? çıktı ne için: 'import sys print (sys.version)' –