Python 2.7 使用熊猫、特定列循环csv
使用csv模块,我循环行以执行逻辑:Python 2.7 使用熊猫、特定列循环csv,python-2.7,csv,pandas,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.r
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爬虫的输入。它获取每个结果并将其作为搜索词输入网页,然后从该网页中提取数据。是否有任何方法可以同时获取数组中的每个单元格值而不是整个数组?基本上,代码的等价物是:
import pandas as pd
df = pd.read_csv("file.csv", usecols=[1])
因此传递usecols=[1]
只会加载第二列,请参见
现在假设此列的名称类似于“url”,但实际上这并不重要,我们可以执行以下操作:
def crawl(x):
#do something
df.apply(crawl)
因此,原则上,上面的方法会一次抓取列中的每个url的值
编辑
您可以将paramaxis=1
传递给apply
,以便它处理每一行而不是整个列:
df.apply(crawl, axis=1)
抱歉,您正在查找
pd.read\u csv(“file.csv”,usecols=[1])
?是否选择要使用的第二列?如果是这样,我将编辑问题。索引值从0开始,因此usecols=[1]
是第二列,这将只加载第二列column@EdChum谢谢,我更新了问题。您没有解释要对行值执行什么操作,其思想是,您希望在整个列上执行一些操作,作为向量化操作,而不是按行操作,除非您真的需要执行。下面是一些用于搜索输入的实际代码def crawl(x):searchkey=driver。按searchkey的名称(“name”)查找元素。发送searchkey(x)
但出于某种原因,它希望同时搜索列中的所有行。它还在单元格值前面包含一个索引号“0,1,2…”。请尝试df.apply(crawl,axis=1)
谢谢,效果很好。我只有一个后续问题,Name:0,dtype:object…
是什么意思?当Iprint x
时,它似乎附加了这一点。您看到的是一个具有单行值的熊猫系列,您看到的是索引值,如Name:0
和dtype:object
,这意味着数据类型,数据类型是python对象,但在您的示例中是str
,我会更新我的答案,让它显示什么对你有效,如果它解决了你的问题,你能接受我的答案吗,谢谢。