不能连接相同长度的熊猫数据帧?

Posted

技术标签:

【中文标题】不能连接相同长度的熊猫数据帧?【英文标题】:Can't concatenate pandas dataframes with the same length? 【发布时间】:2017-04-06 20:40:46 【问题描述】:

这很奇怪。从文档中我已经准备好阅读如何做concat 和合并操作与熊猫。我也都准备好了,可以按如下方式连接到右侧:

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

问题是我生成了以下数据框:

在:

links = pd.DataFrame(links, columns=['link'])

所以,我只想将 link 数据框列连接到 intersection 数据框(请注意,linkintersection 有 78 个长度实例)。因此:

在:

full_table = pd.concat([lis_, lis_2], axis=1)

问题在于,正如您在上面的数据框中看到的那样,它添加了一些 NaN 值。因此,连接linksintersection 数据帧的正确方法是什么?

【问题讨论】:

【参考方案1】:

也许您的索引不匹配。尝试使用ignore_index 参数:

full_table = pd.concat([intersection, links], axis=1, ignore_index=True)

【讨论】:

您的索引显然是问题所在。只需比较上面链接和交叉数据帧的输出(一个索引从 0 开始,另一个从 1 开始)。尝试使用 df.index = list(range(len(df))) 手动重置索引。

以上是关于不能连接相同长度的熊猫数据帧?的主要内容,如果未能解决你的问题,请参考以下文章

熊猫,比较不同长度的数据帧的值*范围*并写回原始 df

熊猫在不同长度的列上合并两个数据框

如何合并/连接两个不同长度的熊猫数据框?

熊猫有条件地创建系列/数据框列

Python,熊猫连接多个数据帧

使用 isin(list) 过滤数据帧时出现“ValueError:列必须与键长度相同”