基于另一个cs中的单元格内容从csv中删除行

2024-06-02 07:14:13 发布

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

我从csv抓取一个url列表,从每个url中提取数据帧信息并将其导出到csv。当它到达一个没有任何信息的页面时就会停止。我想从第一个文件中删除url(它们包含许可证号),我已经根据从第二个文件中收集的许可证号对其进行了爬网。我可以在excel中使用helper列轻松地完成这项工作,但不知道如何使用pandas。你知道吗

例如: 我想根据文件2中的Lic删除文件1中的前2行(url)。你知道吗

File1(no headers)
www.1234.com
www.1235.com
www.1236.com

File2(LIC# is the header)
1234
1235

new urls (expected output back into File1)
www.1236

我已经看了很多例子,在这里和我的头有麻烦围绕它。你知道吗

我感谢您的任何意见和/或建议。你知道吗


Tags: 文件csv数据nohelpercom信息url
3条回答

在x和a变量中存储两个列表:

x=['www.1234.com','www.1235.com','www.1236.com']
a=['1234','1235']

将www.and.com添加到第二个列表并存储在变量b中

b=[]
for i in a:
    b.append('www.'+i+'.com')

创建所需输出

y = [s for s in x if s not in b]
y

首先,创建一个只包含url中间部分的新列

df1['site'] = dfs['dataset1'].apply(lambda x:x.split('.')[1])

然后,内部连接两个数据帧

df = df1.merge(df2,how='inner',left_on='site',right_on='dataset2')

df包含所需的输出。 (我假设dataset1和dataset2是列名)

如果两者都是不同的大数据帧,可以使用join,也可以通过迭代进行检查 测向

df
    File1(no headers)
0   www.1234.com
1   www.1235.com
2   www.1236.com

df1
    File2(LIC# is the header)
0   1234
1   1235

df = df[~df['File1(no headers)'].apply(lambda y: any(map(lambda x :str(x) in y,df1['File2(LIC# is the header)'].tolist())))].reset_index(drop=True)

输出:

    File1(no headers)
0   www.1236.com

相关问题 更多 >