如何通过Pandas Dataframe在单个csv文件中附加多个csv文件记录

时间:2019-04-30 04:35:05

标签: python pandas csv

大家好,我有一个程序,其中有多个csv文件,我想附加该csv文件,这很简单,就是我所拥有的和我想要的。.

File1.csv:

A  B  C  D
1  2  3  4
2  3  4  5

File2.csv:

A  B  C  D
8  8  8  8
9  9  9  9

outputFile.csv:
A  B  C  D
1  2  3  4
2  3  4  5
8  8  8  8
9  9  9  9

这是获得此结果的要求的输出,我编写了可以正常工作的代码..

file1 = "File1.csv"
df1= pd.read_csv(file1)
file2 = "File2.csv"
df2= pd.read_csv(file2)

results = df1.append(df2)
results.to_csv("outputFile.csv", index=False)

这很好用,但是现在我从UI那里获取输入文件,在那里我在List中获取文件,因此我已经编写了一个代码,但是它不起作用

datafiles = ["File1.csv","File2.csv"]
dataframes=[]
# df = pd.DataFrame()
for files in datafiles:
    df1= pd.read_csv(files)
    dataframes.append(df1)

    dataframes.to_csv("mergeOutput.csv", index=False)

我不想单独读取所有文件,这就是为什么我使用了for循环并将所有数据存储到数据帧的原因,但我认为这是不正确的方式,我建议我向我建议正确的方式要从文件中删除重复项,请先告知我是否不清楚...

正如建议@Thotsaphon Sirikutta Import multiple csv files into pandas and concatenate into one DataFrame 现在,我能够获取所需的输出文件,但每次都会有3或4个额外的列被命名为“未命名”,这是空的,因此请告诉我为什么我要获得多余的列,如何在不使用drop()的情况下删除它,这是代码

datafiles = ["File1.csv","File2.csv"]
dfs=[]

for filename in datafiles:
    dfs.append(pd.read_csv(filename))

mergeData = pd.concat(dfs,sort=False)
mergeData.to_csv("mergeOutput.csv", index=False)

1 个答案:

答案 0 :(得分:1)

好吧,如果您有多个具有相同列的csv文件,则可以执行以下操作:

theList.ForEach(item => total = item % 2 == 0 ? total + item : total);

更新

如果您对数据有疑问,可能是有关结构的一些事情,您必须首先对其进行预处理。看这个例子,我只是在我的电脑上做的。

enter image description here