在Python中使用熊猫垂直堆叠.csv文件

在Python中使用熊猫垂直堆叠.csv文件,python,pandas,csv,Python,Pandas,Csv,因此,我一直在尝试将.csv文件与Pandas合并,并尝试创建一些函数来实现自动化,但我一直遇到一个问题。 我的问题是,我想一个接一个地堆叠.csv(相同的列数和不同的行数),但不是用相同的列数获得更大的csv,而是用更多的列和行获得更大的csv(正确的行数,不正确的列数(比预期的列数更多))。 我使用的代码是: import os import pandas as pd def stackcsv(content_folder): global combined_csv com

因此,我一直在尝试将.csv文件与Pandas合并,并尝试创建一些函数来实现自动化,但我一直遇到一个问题。 我的问题是,我想一个接一个地堆叠.csv(相同的列数和不同的行数),但不是用相同的列数获得更大的csv,而是用更多的列和行获得更大的csv(正确的行数,不正确的列数(比预期的列数更多))。 我使用的代码是:

import os
import pandas as pd

def stackcsv(content_folder):
    global combined_csv
    combined_csv= []
    entries = os.listdir(content_folder)
    for i in entries:
        csv_path = os.path.join(content_folder, i)
        solo_csv = pd.read_csv(csv_path,index_col=None)
        combined_csv.append(solo_csv)
   csv_final = pd.concat(combined_csv,axis = 0,ignore_index=True)
   return csv_final.to_csv("final_data.csv",index = None, header = None)
我有大小为20000x17的3.csv文件,我想将其合并为60000x17中的一个。我想我的错误一定是在index、header、index_col等参数中。。。。
提前感谢。

在pandas concat函数中将参数sort添加到False:

csv\u final=pd.concat(组合的\u csv,轴=0,忽略\u索引=True,排序=False)

如果文件没有标题,您必须告诉
读取\u csv
。如果没有,则每个文件的第一行将作为标题行读取。因此,数据帧具有不同的列名,
concat
将添加新列。因此,您应该阅读以下内容:

solo_csv = pd.read_csv(csv_path,index_col=None, header=None)
或者,没有理由对它们进行解码,您可以将顺序文件连接起来:

def stackcsv(content_folder):
    with open("final_data.csv", "w") as fdout
        entries = os.listdir(content_folder)
        for i in entries:
            csv_path = os.path.join(content_folder, i)
            with open(csv_path) as fdin:
                while True:
                    chunk = fdin.read()
                    if len(chunk) == 0: break
                    fdout.write(chunk)

因此,在修改代码后,它起了作用。首先,正如Serge Ballesta所说,有必要对
read_csv
说没有标题。最后,使用
sort=False
,该函数可以完美地工作。这是我使用的最后一段代码,final.csv是719229行×17列。谢谢大家

import os
import pandas as pd

def stackcsv(content_folder):
 global combined_csv
    combined_csv= []
    entries = os.listdir(content_folder)
    for i in entries:
        csv_path = os.path.join(content_folder, i)
        solo_csv = pd.read_csv(csv_path,index_col=None,header = None)
        combined_csv.append(solo_csv)
   csv_final = pd.concat(combined_csv,axis = 0,sort = False)
   return csv_final.to_csv("final_data.csv", header = None)

这些文件有标题行吗?没有,没有标题。我稍后再添加。如果输入csv文件中没有标题,则每个文件的第一行都将丢失。。。