Pandas追加()错误与两个数据帧

时间:2018-05-24 07:28:10

标签: python pandas

当我尝试追加两个或更多数据帧并将结果输出到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()返回数组。我认为这段代码片段足以帮助我。

我在output.csv中获得的格式是: enter image description here

请帮忙,如何将内容从索引1上移。

2 个答案:

答案 0 :(得分:1)

来自df.append文档:

  

other行附加到此帧的末尾,返回一个新行   宾语。不在此框架中的列将添加为新列。

如果您想要向右添加列,请将pd.concataxis=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(...)