1

不幸的是,我无法分享我正在处理这个问题的实际数据,所以请耐心等待我尝试使用一个通用示例来帮助解释我看到的错误。

我有两个数据框,我们将它们称为df_localdf_global,我需要将它们合并以全面了解数据库中的数据。df_global大约有 16 列,其中最相关的是:['observation_id', 'min', 'max']. df_local有 4 列,['observation_id', 'local_id', 'min', 'max']. 但是,在两个数据帧之间,observation_id是相同的,但minmax意味着不同的东西。in df_localminandmax是局部最小值和最大值,而minand maxindf_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')
4

0 回答 0