我是新來的Python家庭,並試圖解決合併兩個Excel文件的天。我研究了無休止的合併,並試圖調整我的代碼以適應我的需求,但它一直沒有工作。我想知道如果我能得到任何幫助,爲什麼我的代碼無法正常工作。我覺得這對使用Python的其他人來說可能是一個普遍問題,所以希望這可以幫助其他人。我很欣賞任何評論!尋找合併兩個Excel文件的ID到一個Excel文件使用Python 2.7
我有兩個excel文件,'Chinese Scores3.csv'和'Chinese Scores4.csv',我試圖通過一個ID合併,這對每個公司都是獨一無二的。除了公司ID之外,每個Excel文件都沒有匹配的列。此外,並非所有公司都在這兩個文件上列出。有些被列出,但其他列在其中。我希望將所有公司ID的信息連在一起放在Excel表格上。即第一個excel文件列是ID,JanSales,FebSales等,第二個excel文件列是ID,CreditScore,EMMAScore等。我想要創建的excel文件有列:ID,JanSales,FebSales,CreditScore,EMMAScore 全部根據公司ID。
這是有道理的嗎?這就像在Excel中使用VLOOKUP,但我想用Python來做到這一點。無論如何,這是我的編碼,這是行不通的。我嘗試操縱它,但它不起作用。我希望得到反饋!
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