我有以下玩具代码:
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
参数吗?
谢谢!
如merge, join, and concat文档中所述,ignore index将删除所有名称引用并使用范围(0…n-1)。因此,在删除
ignore_index
参数或将其设置为false(默认值)后,它应该会给出所需的结果。这将基于索引连接您的df和df2(相同的索引行将被连接,如果其他数据帧没有该索引的成员,它将被连接为nan)。
如果您对数据帧有不同的索引,并且希望以这种方式连接它。您可以创建一个临时索引并对其进行连接,或者在使用concat(…,ignore_index=True)之后设置新数据帧的列。
相关问题 更多 >
编程相关推荐