【发布时间】:2020-10-01 08:44:41
【问题描述】:
我有两个数据框。 df1 的形状为 (64, 10),而 df2 的形状为 (64, 1)。
我一直在尝试连接这两者,但它显示错误。
这已经困扰我一段时间了。谢谢!
pdff = pd.concat([df1, df2], ignore_index=True, sort=False, axis=1)
File "C:\Python37\lib\site-packages\pandas\core\reshape\concat.py", line 287, in concat
return op.get_result()
File "C:\Python37\lib\site-packages\pandas\core\reshape\concat.py", line 503, in get_result
mgrs_indexers, self.new_axes, concat_axis=self.bm_axis, copy=self.copy,
File "C:\Python37\lib\site-packages\pandas\core\internals\concat.py", line 84, in concatenate_block_managers
return BlockManager(blocks, axes)
File "C:\Python37\lib\site-packages\pandas\core\internals\managers.py", line 149, in __init__
self._verify_integrity()
File "C:\Python37\lib\site-packages\pandas\core\internals\managers.py", line 326, in _verify_integrity
raise construction_error(tot_items, block.shape[1:], self.axes)
ValueError: Shape of passed values is (4159, 11), indices imply (127, 11)
【问题讨论】:
-
对两个数据帧执行 reset_index() 并尝试连接。
-
你的错误似乎不同意
ValueError: Shape of passed values is (4159, 11), indices imply (127, 11)听起来你需要merge、join或map -
您的意思是像 SQL 中的 join(通常由 pandas 中的
merge完成)还是 append(在这种情况下您需要相同数量的列)? - 无论哪种方式,这都不是 concat。 -
@LazyCoder,非常感谢。今天学到了一些新东西。
-
@Manakin,是的,我花了一些时间才弄清楚。谢谢。
标签: python pandas dataframe concat