我需要抓取大量链接。完成抓取链接后,我将读取存在此链接的 csv 文件,并更新表示该链接已被抓取的值(指定为 1)。我面临的问题是,作为 Pandas 的新手,我无法在找到后找到为该列赋值的正确方法。
我的数据框:
Drug Link Scraped
0 ADHD (5) https://example.com/prescriptions/adhd 0
1 Acne (354) https://example.com/prescriptions/acne 0
2 Alcohol Addiction (12) https://example.com/prescriptions/alcohol-... 0
... ... ... ...
152 Vomitting/Emesis (312) https://www.example.com/prescriptions/vomittin... 0
153 rows × 3 columns
我想要做的是,检查 Link 列是否等于特定值,如果是,将 Scraped 列的值更改为 1
首先尝试查找行:
df.loc[df['Link'] == 'https://www.example.com/prescriptions/adhd']
Drug Link Scraped
0 ADHD (5) https://www.example.com/prescriptions/adhd 0
尝试读取 Scraped 的值:
df.loc[df['Link'] == 'https://www.example.com/prescriptions/adhd'].at[0, 'Scraped']
0
接下来,我尝试为 Scraped 分配一个值,将其更改为 1
df.loc[df['Link'] == 'https://www.example.com/prescriptions/adhd'].at[0, 'Scraped']=1
接下来,尝试重新读取值:
df.loc[df['Link'] == 'https://www.example.com/prescriptions/adhd'].at[0, 'Scraped']
0
所以似乎价值根本没有改变。我在这里做错了吗?这样做的正确方法是什么?
答案 0 :(得分:2)
分配不带“at”的值:
df.loc[df['Link'] == 'https://www.example.com/prescriptions/adhd', 'Scraped']=1