Python比较数据表

2024-04-29 08:44:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目,需要将python中的数据与excel或txt文件中的数据进行比较。我将尝试更好地解释:我从网站上抓取了一个数据表(数据表有7行1列),我需要将这些值与txt或excel文件进行比较。此txt或excel文件有一个数据表,其中包含3个值,这些值存在于web scraped数据表中(3行1列)

Web刮取数据表:

FT 202003/69362
FT 202003/62581
FT 202003/41307
FT 202003/32316
FT 202003/4664
FT 201903/215090
FT 201903/197043

txt文件或excel文件中的数据表

FT 202003/62581
FT 202003/41307
FT 202003/32316

到目前为止,我的代码是:

faturas = driver.find_elements_by_xpath("//p[@class='text-description-small']//b[contains(text(),'FT')]")
    totalfaturas = len(faturas)
    fat_list = []
    for fat in faturas:
        fat_list.append(fat.text)
        print(fat.text)

我们的目标是找出哪些来自web刮取数据表的值不存在于文件数据表中,因为来自数据表的所有值在此网站中都有一个关联的按钮,但我只想单击txt或excel文件中不存在的值中的按钮(这部分我想我可以做到)。有人能帮我吗


Tags: 文件数据项目texttxtweb网站excel
1条回答
网友
1楼 · 发布于 2024-04-29 08:44:56

您甚至可以使用in在另一个文本中检查一个文本:

text_from_file = '''FT 202003/62581
FT 202003/41307
FT 202003/32316'''

fat_text = 'FT 202003/62581'

if fat_text in text_from_file:
    print('already in file')
else:
    print('new element')

当您将文件中的文本作为项目列表时也是如此

list_from_file = [
    'FT 202003/62581',
    'FT 202003/41307',
    'FT 202003/32316',
]    

fat_text = 'FT 202003/62581'

if fat_text in list_from_file:
    print('already in file')
else:
    print('new element')

对于pandas.DataFrame,您可以使用`

if any(df['items'] == fat_text):

代码:

import pandas as pd

df = pd.DataFrame({'items': [
    'FT 202003/62581',
    'FT 202003/41307',
    'FT 202003/32316',
]})

fat_text = 'FT 202003/62581'

if any(df['items'] == fat_text):
    print('already in file')
else:
    print('new element')

最后,您可以使用sum()将True转换为1,将False转换为0

if sum(df['items'] == fat_text) > 0:

或筛选行并检查得到的行数

if len(df[ df['items'] == fat_text ]) > 0:

相关问题 更多 >