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

2024-04-23 15:29:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下玩具代码:

 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](顺序不重要)
如果我能保证两个数据帧的头是唯一的,有没有办法在不丢失原始列头的情况下连接两个数据帧?
反复遍历列,然后将它们添加到其中一个数据帧中,这是我所不知道的pandas函数或concat参数吗?

谢谢!


Tags: 数据代码importdataframepandasdfindexfoo
1条回答
网友
1楼 · 发布于 2024-04-23 15:29:47

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)之后设置新数据帧的列。

相关问题 更多 >