Python-旧的panda合并导致的行数比新的panda多



我有两个环境:

环境#1:

  • Python 3.7.5
  • 熊猫0.23.4

环境#2:

  • Python 3.8.10
  • 熊猫1.3.4

我在两个版本中都有相同的代码,没有对其进行任何修改。然而,我有一行特定的代码,它似乎导致了问题/产生了不同的输出:

df_result = pd.merge(df_l, df_r, left_on=left_on, right_on=right_on, how='inner', suffixes=suffixes)

CCD_ 2和CCD_。我在调试器中检查了这两个版本,它们完全相同,所以应该没问题。此外,left_onright_onsuffixes变量在两种环境中都具有完全相同的值(也通过调试器进行检查(。

然而,当df_resultmerge函数生成时,在环境#1(旧Python,旧Pandas(中,它会生成一个具有16170行的DataFrame。在环境#2(新Python,新Pandas(中,它生成一个只有8249行的DataFrame。列的数量是相同的,区别只是行的数量。

是什么导致了这种行为?

我如何确保环境#2(新Python,新Pandas(产生的16170行输出与环境#1(旧Python,旧Pan达斯(产生的输出完全相同?

谢谢。

最后,这个问题属于新Pandas处理NaN值的方法。而在旧的Pandas中,代码将NaN值更改为<NA>(作为字符串(,而在新的Panda中,代码仅将其保留为nan(pd.nan类型(。

我确保做了df.fillna('<NA>', inplace=True),效果很好。生成的DataFrame现在具有与旧Pandas生成的行数相同的行数。

相关内容

  • 没有找到相关文章

最新更新