首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >scrapy -如何使用pandas dataframe中的数据填充项目?

scrapy -如何使用pandas dataframe中的数据填充项目?
EN

Stack Overflow用户
提问于 2016-06-17 13:20:02
回答 1查看 1.6K关注 0票数 3

假设CrawlSpider如下:

代码语言:javascript
运行
AI代码解释
复制
import scrapy
from scrapy.loader import ItemLoader
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from tutorial.items import TestItem
from scrapy.http import HtmlResponse


class TestCrawlSpider(CrawlSpider):
    name = "test_crawl"
    allowed_domains = ["www.immobiliare.it"]
    start_urls = [
        "http://www.immobiliare.it/Roma/case_in_vendita-Roma.html?criterio=rilevanza",
        "http://www.immobiliare.it/Napoli/case_in_vendita-Napoli.html?criterio=rilevanza"
    ]

    rules = (
        Rule(LinkExtractor(allow=(), restrict_xpaths=('//a[@class="no-decoration button next_page_act"]',)), callback="parse_start_url", follow= True),
    )


    def parse_start_url(self, response):
        for selector in response.css('div.content'):
            l = ItemLoader(item=TestItem(), selector=selector)
            l.add_css('Price', '.price::text')
            l.add_value('City', '...')
            l.add_value('Longitude', '...')
            l.add_value('Latitude', '...')
            yield l.load_item()

以及相应的items.py:

代码语言:javascript
运行
AI代码解释
复制
import scrapy
from scrapy.loader import ItemLoader
from scrapy.loader.processors import TakeFirst, MapCompose, Join

class TestItem(scrapy.Item):
    Price = scrapy.Field(
        output_processor=MapCompose(unicode.strip),
    )
    City = scrapy.Field(serializer=str)
    Latitude = scrapy.Field(serializer=str)
    Longitude = scrapy.Field(serializer=str)

对于每个start_url,我都将相应的地理信息(“城市”、“经度”、“纬度”)存储在pandas数据帧中。对于上面的示例,数据帧如下所示:

代码语言:javascript
运行
AI代码解释
复制
     City Latitude Longitude
0    Roma    40.85     14.30
1  Napoli    41.53     12.30

如何用存储在数据框中的信息填充'City',‘经度’,'Latitude‘项?

EN

回答 1

Stack Overflow用户

发布于 2016-06-17 13:28:07

我将使用start_requests()方法填充每个城市的meta信息,通过.to_dict()将数据帧转储到字典中以简化查找:

代码语言:javascript
运行
AI代码解释
复制
def start_requests(self):
    df = pd.DataFrame(...)

    # make a dictionary, City -> City info
    d = df.set_index('City').to_dict()

    pattern = re.compile(r"http://www.immobiliare.it/(\w+)/")
    for url in self.start_urls:
        city = pattern.search(url).group(1)
        yield scrapy.Request(url, meta={"info": d[city]})

然后,在回调中,从response.meta获取信息字典

代码语言:javascript
运行
AI代码解释
复制
def parse_start_url(self, response):
    info = response.meta["info"]
    for selector in response.css('div.content'):
        l = ItemLoader(item=TestItem(), selector=selector)
        l.add_css('Price', '.price::text')
        l.add_value('City', info['City'])
        l.add_value('Longitude', info['Longitude'])
        l.add_value('Latitude', info['Latitude'])
        yield l.load_item()

未测试。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37882663

复制
相关文章
dataframe填充缺失值_pandas填充空值
将其Nan全部填充为0,这时再打印的话会发现根本未填充,这是因为没有加上参数inplace参数。
全栈程序员站长
2022/09/22
2.9K0
pandas | DataFrame基础运算以及空值填充
今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame的基本运算。
TechFlow-承志
2020/07/21
4K0
pandas中的 fillna使用(pandas.DataFrame.fillna)「建议收藏」
3、将“A”、“B”、“C”和“D”列中的所有 NaN 元素分别替换为 0、1、2 和 3。
全栈程序员站长
2022/09/22
3.6K0
pandas中的 fillna使用(pandas.DataFrame.fillna)「建议收藏」
数据分析-如何重命名Pandas DataFrame中的列名?
DataFrames和Series是用于数据存储的pandas中的两个主要对象类型:DataFrame就像一个表,表的每一列都称为Series。您通常会选择一个系列来分析或操纵它。今天我们将学习如何重命名Pandas DataFrame中的列名。
XXXX-user
2019/08/20
7.9K0
数据分析-如何重命名Pandas DataFrame中的列名?
pandas | 如何在DataFrame中通过索引高效获取数据?
上篇文章当中我们简单介绍了一下DataFrame这个数据结构的一些常见的用法,从整体上大概了解了一下这个数据结构。今天这一篇我们将会深入其中索引相关的应用方法,了解一下DataFrame的索引机制和使用方法。
TechFlow-承志
2020/07/10
14.1K0
pandas | 如何在DataFrame中通过索引高效获取数据?
Pandas 如何创建 DataFrame
我们已经知道了什么是 Series,在使用 Series 之前,我们得知道如何创建 Series。
用户7886150
2020/12/26
1.7K0
(六)Python:Pandas中的DataFrame
        DataFrame与Series相比,除了可以每一个键对应许多值之外,还增加了列索引(columns)这一内容,具体内容如下所示:
小点点
2022/12/12
4.1K0
如何在 Pandas DataFrame中重命名列?
分析人员重命名列名称的动机之一是确保这些列名称是有效的Python属性名称。这意味着列名称不能以数字开头,而是带下画线的小写字母数字。好的列名称还应该是描述性的,言简意赅,并且不应与现有的DataFrame或Series属性冲突。
五分钟学大数据
2022/10/05
5.8K0
如何在 Pandas DataFrame中重命名列?
pandas | 使用pandas进行数据处理——DataFrame篇
今天是pandas数据处理专题的第二篇文章,我们一起来聊聊pandas当中最重要的数据结构——DataFrame。
TechFlow-承志
2020/07/02
3.6K0
使用Pandas melt()重塑DataFrame
重塑 DataFrame 是数据科学中一项重要且必不可少的技能。在本文中,我们将探讨 Pandas Melt() 以及如何使用它进行数据处理。
deephub
2022/01/21
3.2K0
使用Pandas melt()重塑DataFrame
Pandas DataFrame 数据合并、连接
merge 通过键拼接列 pandas提供了一个类似于关系数据库的连接(join)操作的方法merage,可以根据一个或多个键将不同DataFrame中的行连接起来 语法如下:
马哥Python
2019/06/27
3.5K0
pandas实战-填充数据
本文中记录了最近工作在处理数据的时候遇到的一个需求案例:按照指定的需求填充数据。数据是自己模拟的,类似于业务上的数据。
皮大大
2021/03/01
1K0
pandas实战-填充数据
如何遍历pandas当中dataframe的行
现在需要遍历上面DataFrame的行。对于每一行,都希望能够通过列名访问对应的元素(单元格中的值)。也就是说,需要类似如下的功能:
马哥Python
2019/06/27
4.2K0
在pandas中遍历DataFrame行
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
用户7886150
2020/12/26
3.5K0
Pandas DataFrame 数据存储格式比较
Pandas 支持多种存储格式,在本文中将对不同类型存储格式下的Pandas Dataframe的读取速度、写入速度和大小的进行测试对比。
deephub
2023/09/14
5210
Pandas DataFrame 数据存储格式比较
pandas | DataFrame中的排序与汇总方法
今天是pandas数据处理专题的第六篇文章,我们来聊聊DataFrame的排序与汇总运算。
TechFlow-承志
2020/08/04
4.9K0
pandas | DataFrame中的排序与汇总方法
Python之Pandas中Series、DataFrame实践
Python之Pandas中Series、DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一
王小雷
2018/01/02
4K0
pandas | DataFrame中的排序与汇总方法
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说pandas | DataFrame中的排序与汇总方法,希望能够帮助大家进步!!!
Java架构师必看
2022/01/12
4.1K0
pandas | DataFrame中的排序与汇总方法
Pandas DataFrame 数据存储格式比较
未压缩的CSV可能很慢,而且最大,但是当需要将数据发送到另一个系统时,它非常容易。
数据STUDIO
2023/09/28
2780
Pandas DataFrame 数据存储格式比较
Pandas数据结构之DataFrame
DataFrame 是由多种类型的列构成的二维标签数据结构,类似于 Excel 、SQL 表,或 Series 对象构成的字典。DataFrame 是最常用的 Pandas 对象,与 Series 一样,DataFrame 支持多种类型的输入数据:
用户1564362
2019/11/27
1.7K0

相似问题

使用Pandas dataframe中填充的行填充缺失数据

11

使用数据库填充Pandas Dataframe

12

Pandas Dataframe中的动态列数据(由Dataframe填充)

110

使用Python使用备用CSV数据填充Pandas Dataframe

10

如何使用列迭代填充pandas Dataframe

210
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档