*Python 新手。
我正在尝试将多个文本文件合并为 1 个 csv;下面的例子 -
文件名.csv
Alpha
0
0.1
0.15
0.2
0.25
0.3
文本1.txt
Alpha,Beta
0,10
0.2,20
0.3,30
文本2.txt
Alpha,Charlie
0.1,5
0.15,15
文本3.txt
Alpha,Delta
0.1,10
0.15,20
0.2,50
0.3,10
csv 文件中所需的输出:-
文件名.csv
Alpha Beta Charlie Delta
0 10 0 0
0.1 0 5 10
0.15 0 15 20
0.2 20 0 50
0.25 0 0 0
0.3 30 0 10
我一直在使用的代码和提供的其他代码给了我类似于页面底部的答案
def mergeData(indir="Dir Path", outdir="Dir Path"):
dfs = []
os.chdir(indir)
fileList=glob.glob("*.txt")
for filename in fileList:
left= "/Path/Final.csv"
right = filename
output = "/Path/finalMerged.csv"
leftDf = pandas.read_csv(left)
rightDf = pandas.read_csv(right)
mergedDf = pandas.merge(leftDf,rightDf,how='inner',on="Alpha", sort=True)
dfs.append(mergedDf)
outputDf = pandas.concat(dfs, ignore_index=True)
outputDf = pandas.merge(leftDf, outputDf, how='inner', on='Alpha', sort=True, copy=False).fillna(0)
print (outputDf)
outputDf.to_csv(output, index=0)
mergeData()
然而我得到的答案并不是期望的结果:-
Alpha Beta Charlie Delta
0 10 0 0
0.1 0 5 0
0.1 0 0 10
0.15 0 15 0
0.15 0 0 20
0.2 20 0 0
0.2 0 0 50
0.25 0 0 0
0.3 30 0 0
0.3 0 0 10