Pandas如何在不丢失列标题的情况下连接两个数据帧

时间:2017-04-14 03:41:55

标签: python pandas

我有以下玩具代码:

 import pandas as pd
 df = pd.DataFrame()
 df["foo"] = [1,2,3,4]

 df2 = pd.DataFrame()
 df2["bar"]=[4,5,6,7]  

 df = pd.concat([df,df2], ignore_index=True,axis=1)
 print(list(df))

输出:[0,1]
预期产出:[foo,bar](订单并不重要)
有没有办法连接两个数据帧而不会丢失原始列标题,如果我可以保证标题是唯一的?
我想到迭代列然后将它们添加到其中一个DataFrame中,但是有没有pandas函数或我不知道的concat参数?

谢谢!

1 个答案:

答案 0 :(得分:7)

merge, join, and concat文档中所述,ignore index将删除所有名称引用并使用范围(0 ... n-1)。因此,一旦删除ignore_index参数或将其设置为false(默认值),它应该为您提供所需的结果。

df = pd.concat([df, df2], axis=1)

这将基于索引加入你的df和df2(相同的索引行将被连接,如果其他数据帧没有该索引的成员,它将被连接为nan)。

如果您对数据帧有不同的索引,并希望以这种方式连接它。您可以创建临时索引并加入,也可以在使用concat(...,ignore_index = True)后设置新数据框的列。