使用Pandas循环通过csv,特定列

时间:2015-06-03 19:27:20

标签: python-2.7 csv pandas

使用csv模块,我遍历行以执行逻辑:

import csv

with open("file.csv", "r") as csv_read:
r = csv.reader(csv_read, delimiter = ",")
next(r, None) #Skip headers first row
for row in rows:
    #Logic here

我是Pandas的新手,我想执行相同的逻辑,只使用csv中的第二列作为循环的输入。

import pandas as pd

pd.read_csv("file.csv", usecols=[1])

假设上述情况正确,我应该从这里开始根据第2列中的单元格执行逻辑?

我想使用第2列中的单元格值作为Web爬网程序的输入。它将每个结果作为搜索词输入到网页上,然后从该网页上删除数据。有没有办法同时获取数组中的每个单元格值而不是整个数组?

1 个答案:

答案 0 :(得分:2)

基本上你的代码的熊猫是这样的:

import pandas as pd

df = pd.read_csv("file.csv", usecols=[1])

因此传递usecols=[1]只会加载第二列,请参阅docs

现在假设此列的名称类似于“url”,但实际上我们可以执行以下操作:

def crawl(x):
    #do something

df.apply(crawl)

因此,原则上,上述内容会一次抓取列中的每个网址。

修改

您可以将参数axis=1传递给apply,以便它处理每一行而不是整个列:

df.apply(crawl, axis=1)