我试图根据每个数据帧中一列(称为“Names”)中的匹配值连接两个数据帧(df1
和df2
)。我使用R的inner_join
函数和Python的pandasmerge
函数尝试了这一点,并且能够让这两个函数都成功地在较小的数据子集上工作。我想我的问题是数据帧的大小。在
我的数据帧如下:
df1
有“Names”列和5个附加列,并且有大约900行。在df2
有“Names”列,还有~200万个附加列,还有~900行。在我试过(在R):
df3 <- inner_join(x = df1, y = df2, by = 'Name')
我也尝试过(在Python中,df1
和{
(其中'Name'列位于df1的索引1和df2的索引0处)
当我将上述方法应用于我的完整数据帧时,它会运行很长时间,最终会崩溃。另外,我怀疑问题可能出在我的df2
中的200万列,因此我尝试将其(按行)细分为更小的数据帧。我的计划是将df2
的小子集与df1
连接起来,然后在最后将新的数据帧行绑定在一起。{cd2>加入更小的cd2}也不成功。在
如果有人能提供任何建议,我将不胜感激。在
谢谢大家的帮助!使用数据表正如@shadowtalker建议的那样,极大地加快了这个过程。仅供参考,以防有人试图做类似的事情,df1大约是400MB,我的df2文件大约是3gb。在
我完成了以下任务:
这是一个非常难看的解决方法,我将df2的列分解并逐个添加它们。不确定它是否有效,但可能值得一试:
就像我说的,这是一个丑陋的解决办法,但可能会奏效。在
相关问题 更多 >
编程相关推荐