在Python中使用熊猫垂直堆叠.csv文件
因此,我一直在尝试将.csv文件与Pandas合并,并尝试创建一些函数来实现自动化,但我一直遇到一个问题。 我的问题是,我想一个接一个地堆叠.csv(相同的列数和不同的行数),但不是用相同的列数获得更大的csv,而是用更多的列和行获得更大的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
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文件中没有标题,则每个文件的第一行都将丢失。。。