我是Python家族的新手,几天来一直试图解决合并两个Excel文件的问题。我对合并进行了无休止的研究,并试图调整我的代码以满足我的需求,但它一直不起作用。我想知道我是否能得到任何帮助,为什么我的代码不能工作。我觉得这可能是使用Python的其他人的一个常见问题,所以希望这也能帮助其他人。我很感激任何评论!
我有两个excel文件,“中文scores3.csv”和“中文scores4.csv”,我试图通过一个ID合并,这是每个公司唯一的。除了公司ID之外,每个excel文件都没有匹配的列。此外,并不是所有的公司都在这两个文件中上市。有些同时列出两者,但另一些则在其中之一或另一个上列出。我想把公司ID的所有信息一起附在excel表的一行中。即第一个excel文件列是ID、JanSales、FebSales等,第二个excel文件列是ID、CreditScore、EMMAScore等。我想创建的excel文件有列:ID、JanSales、FebSales、CreditScore、EMMAScore都根据公司ID。
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:]) )
虽然我们可以修复您的代码,但如果您要做这种工作,我强烈建议您查看pandas库。它使生活变得容易得多,但往往近乎琐碎。
例如,如果我们有两个csv文件(尽管如果我们愿意,我们可以直接从Excel文件开始):
>>> !cat scores3.csv
ID,JanSales,FebSales
1,100,200
2,200,500
3,300,400
>>> !cat scores4.csv
ID,CreditScore,EMMAScore
2,good,Watson
3,okay,Thompson
4,not-so-good,NA
我们可以将这些内容读入称为DataFrames的对象(把它们想象成类似于Excel表):
>>> import pandas as pd
>>> s3 = pd.read_csv("scores3.csv")
>>> s4 = pd.read_csv("scores4.csv")
>>> s3
ID JanSales FebSales
0 1 100 200
1 2 200 500
2 3 300 400
>>> s4
ID CreditScore EMMAScore
0 2 good Watson
1 3 okay Thompson
2 4 not-so-good NaN
>>> merged = s3.merge(s4, on="ID", how="outer")
>>> merged
ID JanSales FebSales CreditScore EMMAScore
0 1 100 200 NaN NaN
1 2 200 500 good Watson
2 3 300 400 okay Thompson
3 4 NaN NaN not-so-good NaN
之后,我们可以将其保存到csv文件或Excel文件中:
>>> merged.to_csv("merged.csv")
>>> merged.to_excel("merged.xlsx")
本文向大家介绍Python将多个excel文件合并为一个文件,包括了Python将多个excel文件合并为一个文件的使用技巧和注意事项,需要的朋友参考一下 利用Python,将多个excel文件合并为一个文件 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。 完整代码 源文件excel1: 源文件e
我在同一个excel表中有3000个类似于这些表的表: PS:我只需要csv表中指定的信息
问题内容: 如何使用Java合并两个WAV文件? 我试过了,但是没有正常工作,他们还有其他方法吗? 问题答案: 如果直接使用wav文件的字节,则可以在任何编程语言中使用相同的策略。对于此示例,我将假设两个源文件具有相同的比特率/数字通道,并且具有相同的长度/大小。(否则,您可能可以在开始合并之前对其进行编辑)。 首先看一下WAV规范,我在斯坦福课程网站上找到了一个很好的人: 常见的标头长度为44或
本文向大家介绍如何用python合并多个excel文件,包括了如何用python合并多个excel文件的使用技巧和注意事项,需要的朋友参考一下 安装模块 1、找到对应的模块 http://www.python-excel.org/ 2、用 pip install 安装 因为使用的是 python3,所以安装的时候采用 pip3。 XlsxWriter 示例 先看看简单的演示: 运行结果如下: 合
问题内容: 我正在尝试合并以下两个文件(交集) 第二个文件Test2.txt 然后最终结果 我确实如下所示 我只是注意到这是联盟设置的。包括所有数据Test1和Test2。 我只希望对Intersection案例显示我期望的结果。仅(1,2,3,4) 你们有什么主意吗?谢谢! 问题答案:
我有一个for循环,它导入目录中的所有Excel文件,并将它们合并到一个数据框中。但是,我想创建一个新列,其中每一行都采用Excel文件名的字符串。 这是我的导入和合并代码: 例如,如果第一个Excel文件名为file1.xlsx,我希望该文件中的所有行在(一个新列)中有值。如果第二个Excel文件名为file2.xlsx,我希望该文件中的所有行都具有值。请注意,Excel文件没有真正的模式,我只