Python 在循环中附加数据帧
目标:在循环中附加数据帧以获得组合的数据帧Python 在循环中附加数据帧,python,pandas,dataframe,for-loop,append,Python,Pandas,Dataframe,For Loop,Append,目标:在循环中附加数据帧以获得组合的数据帧 df_base = pd.DataFrame(columns=df_col.columns) file_path = 'DATA/' filenames = ['savedrecs-23.txt', 'savedrecs-25.txt', 'savedrecs-24.txt'] For循环: for file in filenames: path = file_path+file doc = codecs.open(path,'rU'
df_base = pd.DataFrame(columns=df_col.columns)
file_path = 'DATA/'
filenames = ['savedrecs-23.txt', 'savedrecs-25.txt', 'savedrecs-24.txt']
For循环:
for file in filenames:
path = file_path+file
doc = codecs.open(path,'rU','UTF-8')
df_add = pd.read_csv(doc, sep='\t')
res = df_base.append(df_add)
res.shape
预期成果:
(15,67);所有三个数据帧合并为一个数据帧
当前成果:
(5,67);只返回循环中的最后一个数据帧
res=df_base.append(df_add)
Pandasappend
函数不修改调用它的对象。它返回一个新对象,该对象包含附加到原始数据帧行上的已添加数据帧中的行
df_base = pd.DataFrame(columns=df_col.columns)
file_path = 'DATA/'
filenames = ['savedrecs-23.txt', 'savedrecs-25.txt', 'savedrecs-24.txt']
由于您从未修改过df_base
,因此您的输出只是上一个文件中的帧,附加到空的df_base
数据帧中
df_base = pd.DataFrame(columns=df_col.columns)
file_path = 'DATA/'
filenames = ['savedrecs-23.txt', 'savedrecs-25.txt', 'savedrecs-24.txt']
请注意,不建议以迭代方式将数据帧附加在一起。相反,“更好的解决方案是将这些行附加到列表中,然后一次将列表与原始数据帧连接起来。”
res=df_base.append(df_add)
Pandasappend
函数不修改调用它的对象。它返回一个新对象,该对象包含附加到原始数据帧行上的已添加数据帧中的行
df_base = pd.DataFrame(columns=df_col.columns)
file_path = 'DATA/'
filenames = ['savedrecs-23.txt', 'savedrecs-25.txt', 'savedrecs-24.txt']
由于您从未修改过df_base
,因此您的输出只是上一个文件中的帧,附加到空的df_base
数据帧中
df_base = pd.DataFrame(columns=df_col.columns)
file_path = 'DATA/'
filenames = ['savedrecs-23.txt', 'savedrecs-25.txt', 'savedrecs-24.txt']
请注意,不建议以迭代方式将数据帧附加在一起。相反,“更好的解决方案是将这些行附加到一个列表中,然后立即将列表与原始数据帧连接起来。”(给出了一个示例)hmm使用
res
替换为df\u base
此代码中的df\u base
?它看起来没有定义。也许你想要df_base=df_base.append(df_add)
?请提供一个.hmm,否则用df_base
替换res
,这段代码中的df_base
是什么?它看起来没有定义。也许您想要df\u base=df\u base.append(df\u add)
?请提供一个。谢谢!但是考虑到这一点,下面的代码应该可以工作:df_base=df_base.append(df_add)@thetinywindow,是的,它应该可以工作,但是如果您需要处理更大的数据集,它可能会效率低下。谢谢!但是考虑到这一点,下面的代码应该可以工作:df_base=df_base.append(df_add)@thetinywindow,是的,它应该可以工作,但是如果您需要处理更大的数据集,那么可能会效率低下。