不幸的是,我无法分享我正在处理这个问题的实际数据,所以请耐心等待我尝试使用一个通用示例来帮助解释我看到的错误。
我有两个数据框,我们将它们称为df_local
和df_global
,我需要将它们合并以全面了解数据库中的数据。df_global
大约有 16 列,其中最相关的是:['observation_id', 'min', 'max']
. df_local
有 4 列,['observation_id', 'local_id', 'min', 'max']
. 但是,在两个数据帧之间,observation_id
是相同的,但min
和max
意味着不同的东西。in df_local
,min
andmax
是局部最小值和最大值,而min
and max
indf_global
是该观察的整个数据集的实际最小值和最大值。
当我使用以下代码行合并两个数据框时:
df = pd.merge(df_global, df_local, on = 'observation_id', how = 'outer')
我没有收到任何错误并df
返回列['min_x','max_x', 'min_y','max_y']
。这是....很好...除了我想在合并之前重命名列,以便我知道哪个是本地的,哪个是全局的。
但是,当我将df_local
的列重命名为['observation_id', 'local_id', 'local_min', 'local_max']
合并时出现以下错误:
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
这与此处的此错误类似,因此我检查以确保两个数据帧中没有重复的列。我不。同样,仅当我df_local
在合并之前尝试重命名 's 列时才会发生此错误。当我不重命名列时,我没有收到错误消息。
我不知道发生了什么,并在互联网上寻求帮助,甚至询问处理这些数据的常驻蟒蛇大师可能是什么问题。我们都被困住了。
对于无法提供实际数据来显示操作中的错误,我深表歉意,但我希望描述足以让某人找到解决方案。
编辑:
这是我可以展示的脚本。
什么有效:
df = pd.merge(df_global, df_local, on = 'observation_id', how = 'outer')
什么不起作用:
df_local.columns = ['observation_id', 'local_id', 'local_min', 'local_max']
df = pd.merge(df_global, df_local, on = 'observation_id', how = 'outer')