Python Pandas DataFrame.compare。错误:找不到 DataFrame 的属性“比较”

shu*_*403 1 python dataframe pandas

compare我在 Pandas 文档中找到了该函数:

pandas.DataFrame.compare
DataFrame.compare(other, align_axis=1, keep_shape=False, keep_equal=False)
Run Code Online (Sandbox Code Playgroud)

来源

   def New_names(self, df_old, df_new):

    #New records for insert
    df_old_names = set(df_old['name'])
    df_new_names = set(df_new['name'])

    difference = df_new_names - df_old_names
    coincidence = df_old_names - difference

    exit_insert = df_new[df_new['name'].isin(difference)]

    #Check old records

    df_old_names_restrict = df_old[df_new.columns]

    exit_update = df_new.compare(df_old_names_restrict)
    

    return (exit_insert, exit_update)
Run Code Online (Sandbox Code Playgroud)

但它会引发以下错误:

Traceback (most recent call last):   File
"C:/Users/shulya403/Shulya403_works/all_gid_2/Database/db_insert_pd.py",
line 203, in <module>
 FillDB.Pruducts_to_SQL(df_new=FillDB.df_Products.head(20))   File "C:/Users/shulya403/Shulya403_works/all_gid_2/Database/db_insert_pd.py",
line 184, in Pruducts_to_SQL
    df_select = self.New_names(self.Select_SQL_Products(), df_new)[0]   File
"C:/Users/shulya403/Shulya403_works/all_gid_2/Database/db_insert_pd.py",
line 175, in New_names
    exit_update = df_new.compare(df_old_names_restrict)   File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\pandas\core\generic.py",
line 5274, in __getattr__
    return object.__getattribute__(self, name) AttributeError: 'DataFrame' object has no attribute 'compare'
Run Code Online (Sandbox Code Playgroud)

shu*_*403 5

\n

你的...是pd.__version__?它在文档中说此方法是 1.1.0 \xe2\x80\x93 RichieV中的新方法

\n
\n

是的,它有效!\n当时pd.__version__是 1.0.5

\n

pip install pandas --upgrade和“比较”工作正常。

\n