어려운 문제 나는 2 열파이썬에서 동등성을 만드는 방법은 무엇입니까? 내게
4,8
5,64
6,12
7,54
8,2
와 CSV가 ... 50 개 이상의 항목
한 컬럼 제 CSV (제 CSV에서 두 번째 열의 엔트리) .는 내가 처음 CSV에서 해당 항목을 찾을 수 있습니다 (쓰기)하려고 :
이54,7
8,4
12,6
8,4
64,5
54,7
...
어려운 문제 나는 2 열파이썬에서 동등성을 만드는 방법은 무엇입니까? 내게
4,8
5,64
6,12
7,54
8,2
와 CSV가 ... 50 개 이상의 항목
한 컬럼 제 CSV (제 CSV에서 두 번째 열의 엔트리) .는 내가 처음 CSV에서 해당 항목을 찾을 수 있습니다 (쓰기)하려고 :
이54,7
8,4
12,6
8,4
64,5
54,7
...
OK ... 두 개의 CSV 파일이 있고 두 번째는 B의 값 중 하나가 열이있는 경우 :
with open('test.csv') as f:
line_values = [line.strip().split(',') for line in f.readlines()]
transposed_values = dict([(v.strip(), k) for k, v in line_values])
with open('test2.csv') as fi:
with open('out.csv', 'w') as fo:
for line in fi.readlines():
B = line.strip()
try:
print >>fo, '{}, {}'.format(B, transposed_values[B])
except KeyError:
print >>fo, '{}, ?'.format(B)
입력 파일, test.csv
:
4, 8
5, 64
6, 12
7, 54
8, 2
입력 파일을 , test2.csv
:
54
8
12
8
64
54
출력 파일, out.csv
:
54, 7
8, 4
12, 6
8, 4
64, 5
54, 7
난 당신이 쓰고 싶은 CSV 파일에 대한 A
열을 얻을 어디에 있는지,하지만의 가정하지 않는다 값은 순서대로 목록에 있습니다. As
. 그런 다음 :
import csv
d = {}
with open('toread.csv') as f:
r = csv.reader(f)
for a, b in r:
d[b] = a
with open('towrite.csv', 'w') as f:
w = csv.writer(f)
for a in As:
w.writerow(a, d[a])
미안 해요, 당신은 "등가"가 무엇을 의미합니까? "해결 된"CSV를 예로들 수 있습니까? (즉, 마지막 예에서 "?"대신에 있어야하는 것은 무엇입니까?) – Roberto
"동등성"이란 무엇을 의미합니까? 당신이 의미하는 것을 설명 할 수 있습니까, 아니면 어떤 예도 유용 할 수 있습니까? – Marcin
열을 조 변경하려고하십니까? 그렇다면 예상 결과와 실제 결과 사이의 순서를 유지함으로써 명확한 포인트를 전달하는 데 도움이됩니다. – Makoto