比较熊猫中的两个数据框后,不会删除重复的行

时间:2018-07-17 11:29:16

标签: python mysql pandas

我在熊猫中有两个数据框。其中一个是来自外部源的数据,另一个是来自mysql数据库的数据。两者都有相同的列(信息,日期,链接)。

我正在对其执行merge查询,以便删除重复项,从某种意义上说,是将外部副本与数据库中已有的内容进行比较,然后将重复项删除到外部副本中,然后再插入数据库。

column_titles = [
            'Title',
            'PublishDate',
            'ExternalUrl'
]

params_list = ['2018-07-01 00:00:00']

df = dbData.read(select_article_news_data(), column_titles, params_list)

df_content = df['data'].rename(columns={'Title': 'info','PublishDate' : 'date','ExternalUrl': 'link'})


    sql_col_titles = [
            'info',
            'date',
            'link'

        ]

sql_df = dbData.read(select_article_news_mysql(), sql_col_titles, None, mysql=True)

sql_df = sql_df['data']


df_all = df_content.merge(sql_df.drop_duplicates(), on=['info', 'date', 'link'],
                  how='left', indicator=True )

df_all = df_all.loc[df_all['_merge'] == 'left_only']

new_df = df_all.drop(columns=['_merge'])

new_df.to_sql(con=cnx, name='news', if_exists='append', index=False)

dbData.read只需调用pandas read_sql方法,并执行其他不相关的东西并返回二项式,结果集为df['data']

我遇到的错误是,最初运行脚本时,最初有306个条目。在此之后,当我再次运行它时,将得到404,这些额外的条目都是重复的。使用条件比较时,所有内容均为True,因此应删除这些重复项。

我以前使用过这种方法,并且可以正常工作。我可以重命名df_content的列名吗?

0 个答案:

没有答案