当我尝试追加两个或更多数据帧并将结果输出到csv时,它显示为瀑布格式。
dataset = pd.read_csv('testdata.csv')
for i in segment_dist:
for j in step:
print_msg = str(i) + ":" + str(j)
print("\n",i,":",j,"\n")
temp = pd.DataFrame(estimateRsq(dataset,j,i),columns=[print_msg])
csv = csv.append(temp)
csv.to_csv('output.csv',encoding='utf-8', index=False)
estimateRsq()返回数组。我认为这段代码片段足以帮助我。
请帮忙,如何将内容从索引1上移。
答案 0 :(得分:1)
来自df.append
文档:
将
other
行附加到此帧的末尾,返回一个新行 宾语。不在此框架中的列将添加为新列。
如果您想要向右添加列,请将pd.concat
与axis=1
一起使用(水平方式):
list_of_dfs = [first_df, second_df, ...]
pd.concat(list_of_dfs, axis=1)
如果数据框中的索引不匹配,您可能需要添加参数ignore_index=True
。
答案 1 :(得分:1)
构建数据框列表,然后连接
相对于pd.DataFrame.append
+ list.append
的单次调用, pd.concat
相对较贵。
因此,您应该汇总到数据框列表,然后在此列表中使用pd.concat
:
lst = []
for i in segment_dist:
# do something
temp = pd.DataFrame(...)
lst.append(temp)
df = pd.concat(lst, ignore_index=True, axis=0)
df.to_csv(...)