Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在循环中附加数据帧_Python_Pandas_Dataframe_For Loop_Append - Fatal编程技术网

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)

Pandas
append
函数不修改调用它的对象。它返回一个新对象,该对象包含附加到原始数据帧行上的已添加数据帧中的行

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)

Pandas
append
函数不修改调用它的对象。它返回一个新对象,该对象包含附加到原始数据帧行上的已添加数据帧中的行

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,是的,它应该可以工作,但是如果您需要处理更大的数据集,那么可能会效率低下。