Python:Dataframe 循环仅重复一个元素

Python: Dataframe loop repeats by only one element

当我 运行 代码并输出它时,我注意到列表中第三项的消息连续输出了三次。使用列表中的前面和后面的元素,它可以解决问题。谁能帮我解决这个问题,或者谁知道如何至少删除此类重复项?

Nachrichten = []
    

    
    for row in googlenews.results(): 
        table_new.append({ 
            'City': ort, 
            'Title': row['title'],  
            'URL':row['link'], 
            'Source': row['site'], }) 
    
        df = pd.DataFrame(table_new) 

dfges = pd.concat(nachrichten, axis='index')
´´´

您的代码包含一些关于小写和大写 e 的问题。 G。 nachrichten 对比 Nachrichten。 Python 虽然是 case-sensitive。

要回答您的问题,您可以使用 drop_duplicates() 消除基于 'Title' 的重复项。

这产生:

dfges['Title'].value_counts().max()
>>> 1

扩展代码:

import pandas as pd 
from GoogleNews import GoogleNews 
    
googlenews = GoogleNews() 
googlenews.set_encode('utf_8') 
googlenews.set_lang('en') 
googlenews.set_period('7d')
    
orte = ["Munich", "New York", "Madrid", "London", "Los Angeles", "Frankfurt", "Rom"] 
nachrichten = []
    
for ort in orte: 
    googlenews.clear() 
    googlenews.get_news(ort) 
    table_new = [] 
    
    for row in googlenews.results(): 
        table_new.append({ 
            'City': ort, 
            'Title': row['title'], 
            'Date': row['date'], 
            'URL':row['link'], 
            'Source': row['site'], }) 
    
        df = pd.DataFrame(table_new) 
        
    nachrichten.append(df)

dfges = pd.concat(nachrichten, axis='index')
dfges.drop_duplicates(subset=['Title'], keep='last', inplace=True)
print(dfges)