Форум сайта python.su
там где мы присваиваем row = “abcd” из table.csv данные вообще не изменяются, это константа. А вот в таблице input1.csv буквенные коды менятся, там могут быть:
1 dfsaas cccc 242
2 dfsaas bbbb 242
3 dfsaas aaaa 242
4 dfsaas dddd 242
5 dfsaas caac 242
6 dfsaas bdab 242
7 dfsaas acdb 242
8 dfsaas dddc 242
Офлайн
Подредактировали где я сказал?
Какая ошибка теперь?
Офлайн
Ага. Cтолбца значит. То есть “abcd” уникальные имена столбцов. А мы даём в файле инпут имя столбца для каждой строки.
то есть:
a b c d
0 0 1 0 c
0 0 1 0 c
0 0 1 0 c
0 1 0 0 b
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import csv
import math
cols = "abcd"
result = []
table = open('table.csv')
data = []
for string in table.readlines():
data.append(map(int, string.rstrip().split(',')))
inputs = open('input1.csv')
for string in inputs.readlines():
rows = string.split(',')[2].strip()
summa = 0
for i, char in enumerate(rows):
summa += data[i][cols.index(char)]
result += [summa]
print(result)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import csv
import math
rows = "abcd"
result = []
table = open('table.csv')
data = []
for string in table.readlines():
data.append(map(int, string.rstrip().split(',')))
inputs = open('input1.csv')
for string in inputs.readlines():
cols = string.split(',')[2].strip()
summa = 0
for i, char in enumerate(cols):
summa += data[rows.index(char)][i]
result += [summa]
print(result)
Отредактировано (Март 30, 2010 10:53:48)
Офлайн
урааа!!! все заработала…
Griffon, спасибо Вам огромное
теперь разберусь как следует с кодом, и буду дальше вопросы задавать )))
Офлайн
Только import'ы тут вообще не надо. :)
Офлайн
я себе чуть усложнила задачу, поэтому у меня уже возникли вопросики:
1) в таблице где находится уникальный код, я изменила переменные с плаващей (.), следовательно мне пришлось поменять int на float . Но почему то считывание происходит не совсем корректно, не пойму почему он так их записывает, у меня в таблице 1 столбце значения ,а считывает как
2) как мне записать в таблицу Output.csv, полученные значения в 2 столбика (x,y).
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import csv
import math
cols = "abcd"
result = []
table = open('TableSeven.csv', 'r')
data = []
for string in table.readlines():
data.append(map(float, string.rstrip().split(',')))
print data
inputs = open('Input.csv', 'r')
for string in inputs.readlines():
rows = string.split(',')[1].strip()
summa = 0
for i, char in enumerate(rows):
summa += data[i][cols.index(char)]
result += [summa/100]
for x in result:
x.writeopen('Output.csv', 'w')
cols = "abcd"
result = []
table = open('TableNine.csv', 'r')
data = []
for string in table.readlines():
data.append(map(float, string.rstrip().split(',')))
inputs = open('Input.csv', 'r')
for string in inputs.readlines():
rows = string.split(',')[3].strip()
summa = 0
for i, char in enumerate(rows):
summa += data[i][cols.index(char)]
result += [summa/100]
for y in result:
y.writeopen('Output.csv', 'w')
Офлайн
Уверена что прочитала хоть одну книгу по питону?
http://python.su/forum/viewtopic.php?id=4648
Для записи формируем массив строк и записываем в файл. Это точно в литературе есть с примерами.
Офлайн
да, уверена, я уже просто потом вспомнила этот нюанс с float.
Потому что теории много, а практики никакой, отсюда и вылетают глупые вопросы. Но мне простительно, я же в разделе чайников :), а даже не новичков. Зато теперь этот нюанс точно в голове отложился. Кстати, спасибо за ссылку, там много полезной инфы.
Офлайн