【问题标题】:Python Pandas DataFrame.compare. Error: Can`t find Attribute 'compare' for DataFramePython Pandas DataFrame.compare。错误:找不到 DataFrame 的属性“比较”
【发布时间】:2020-08-02 13:26:25
【问题描述】:

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

pandas.DataFrame.compare
DataFrame.compare(other, align_axis=1, keep_shape=False, keep_equal=False)

Source

   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)

但它提高了:

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'

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

你的pd.__version__ 是什么?它在文档中说这种方法是 1.1.0 中的新方法 – RichieV

是的,它有效! pd.__version__ 是 1.0.5

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

【讨论】:

    猜你喜欢
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多