저는 Python 패밀리를 처음 사용하여 며칠 동안 두 개의 Excel 파일을 병합하려고 노력했습니다. 나는 끝없이 합병을 연구하고 내 필요에 맞게 코드를 수정하려고했지만 작동하지 않았습니다. 왜 내가 코드가 작동하지 않는지에 대한 도움을 얻을 수 있는지 궁금해했다. 이것이 파이썬을 사용하는 다른 사람들에게 공통적 인 문제가 될 수 있다고 생각합니다. 그래서 다른 사람들에게도 도움이 될 것입니다. 나는 어떤 의견을 주셔서 감사합니다!ID별로 두 개의 Excel 파일을 Python 2.7을 사용하여 하나의 Excel 파일로 병합하고자합니다.
각 회사마다 고유 한 ID로 병합하려고하는 두 개의 Excel 파일 'Chinese Scores3.csv'와 'Chinese Scores4.csv'가 있습니다. 회사 ID 이외에 각 Excel 파일마다 일치하는 열이 없습니다. 또한 모든 회사가 두 파일에 모두 나열되어있는 것은 아닙니다. 일부는 둘 다 나열되지만 다른 것은 둘 중 하나에 나열됩니다. 회사 ID에 대한 모든 정보를 Excel 시트의 한 줄에 함께 첨부하고 싶습니다. 즉 첫 번째 Excel 파일 열은 ID, JanSales, FebSales 등이며 두 번째 Excel 파일 열은 ID, CreditScore, EMMAScore 등입니다. 만들려는 Excel 파일에는 ID, JanSales, FebSales, CreditScore, EMMAScore 열이 있습니다. 은 모두 회사 ID에 따라
이 의미가 있습니까? 그것은 Excel에서 VLOOKUP을 사용하는 것과 같지만, 파이썬을 사용하여 이것을하고 싶습니다. 어쨌든, 제 코드는 작동하지 않습니다. 나는 그것을 조작하려고 시도하지만 작동하지 않습니다. 나는 피드백을 받기를 희망한다! 우리가 코드를 수정할 수 있지만 대신 작품의 이런 종류의 일을 할 거라면
import sys
import csv
def main(arg):
headers= []
for arg in 'Chinese Scores3.csv':
with open(arg) as f:
curr = 'Chinese Scores3.csv'.reader(f).next()
headers.append(curr)
try:
keys=list(set(keys) & set (curr))
except NameError:
keys = curr
header = list(keys)
for h in headers:
header += [ k for k in h if k not in keys ]
data = {}
for arg in 'Chinese Scores4.csv':
with open(arg) as f:
reader = 'Chinese Scores4.csv'.DictReader(f)
for line in reader:
data_key = tuple([ line[k] for k in keys ])
if not data_key in data: data[data_key] = {}
for k in header:
try:
data[data_key][k] = line[k]
except KeyError:
pass
for key in data.keys():
for col in header:
if key in data and not col in data[key]:
del(data[key])
print ','.join(header)
for key in sorted(data):
row = [ data[key][col] for col in header ]
print ','.join(row)
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))
DSM, 팬더 제안은 좋은 아이디어였습니다. 내가 사용한 방법보다 훨씬 더 의미가 있습니다. 문제를 해결해 주셔서 감사합니다! – user2584342