我正在制作一个项目,我需要将来自python的数据与来自excel或txt文件的数据进行比较。我会尝试更好地解释:我从网站上抓取了一个数据表(7 行 1 列的数据表(,我需要将这些值与 txt 或 excel 文件进行比较。此 txt 或 excel 文件有一个数据表,其中包含 3 个值,这些值存在于网络抓取的数据表中(3 行和 1 列(。
网页抓取数据表:
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)
目标是找出网络抓取数据表中的哪些值在文件数据表中不存在,因为数据表中的所有值在这个网站上都有一个关联的按钮,但我只想从 txt 或 excel 文件中不存在的值中单击按钮(这部分我想我可以做到(。谁能帮我?
您甚至可以使用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: