Python:dataframe-数据被覆盖而不是被压缩
我想从几个.csv文件中提取数据,并将它们合并到pandas中的一个大数据帧中。为此,我创建了一个数据帧,该数据帧应填充传入数据帧的数据Python:dataframe-数据被覆盖而不是被压缩,python,pandas,dataframe,Python,Pandas,Dataframe,我想从几个.csv文件中提取数据,并将它们合并到pandas中的一个大数据帧中。为此,我创建了一个数据帧,该数据帧应填充传入数据帧的数据 final_df = DataFrame(columns=['Column1','Column2','Column3']) for file in glob.glob("file.csv"): name_csv = str(file) logfile = pd.read_csv(name_csv, skip_blank_lines = F
final_df = DataFrame(columns=['Column1','Column2','Column3'])
for file in glob.glob("file.csv"):
name_csv = str(file)
logfile = pd.read_csv(name_csv, skip_blank_lines = False)
df = DataFrame(logFile, columns=['Column1','Column2','Column3']
concat = pd.concat([final_df,df])
但是,随着循环的每次迭代,先前提取的数据都会被覆盖。如何解决此问题?您需要首先将所有df附加到列表中,然后使用:
对-logfile的一些改进已经是df,更好的是使用参数名
或使用列表理解:
您需要首先将所有df追加到列表中,然后使用:
对-logfile的一些改进已经是df,更好的是使用参数名
或使用列表理解:
您根本没有使用pd.concat的结果。变量concat在每次迭代中都会被丢弃,但它将是部分数据帧。您根本没有使用pd.concat的结果。变量concat在每次迭代中都会被丢弃,但它将是部分数据帧。您应该创建df的列表,并在最后将其全部concat:
concat_list = []
for file in glob.glob("file.csv"):
name_csv = str(file)
logfile = pd.read_csv(name_csv, skip_blank_lines = False)
df = DataFrame(logFile, columns=['Column1','Column2','Column3']
concat_list.appned(df)
final_df = pd.concat(concat_list)
您应该创建df的列表,并在末尾将其全部合并:
concat_list = []
for file in glob.glob("file.csv"):
name_csv = str(file)
logfile = pd.read_csv(name_csv, skip_blank_lines = False)
df = DataFrame(logFile, columns=['Column1','Column2','Column3']
concat_list.appned(df)
final_df = pd.concat(concat_list)
看起来你对列表的理解是错误的。看起来你对列表的理解是错误的。在这种情况下,没有理由保留final_df的第一个实例。它最终被替换了。@Langitar,忘了删除它,谢谢:在这种情况下,没有理由保留final_df的第一个实例。它最终被替换了。@Langitar,忘记删除了,谢谢:
concat_list = []
for file in glob.glob("file.csv"):
name_csv = str(file)
logfile = pd.read_csv(name_csv, skip_blank_lines = False)
df = DataFrame(logFile, columns=['Column1','Column2','Column3']
concat_list.appned(df)
final_df = pd.concat(concat_list)