小编Dan*_*iel的帖子

Pandas:如何将所有行合并为一行?

我有以下数据框:

  text
1 "abc" 
2 "def" 
3 "ghi"
4 "jkl" 
Run Code Online (Sandbox Code Playgroud)

如何将这些行合并到具有单行的数据框中,如下所示?

  text 
1 "abc, def, ghi, jkl" 
Run Code Online (Sandbox Code Playgroud)

逗号分隔不是必须的,但所有值都应该位于一行中。这些值也可以存储在逗号分隔的字符串列表中。

python csv pandas txt

2
推荐指数
1
解决办法
5554
查看次数

如何使用 Pandas 将行中的多个字典拆分为新行

我有以下数据框,其中“规则”列的列表中包含多个字典。

SetID      SetName             Rules
    0         Standard_1        [{'RulesID': '10', 'RuleName': 'name_abc'}, {'RulesID': '11', 'RuleName': 'name_xyz'}]   
    1         Standard_2        [{'RulesID': '12', 'RuleName': 'name_arg'}]
Run Code Online (Sandbox Code Playgroud)

期望的输出是:

SetID      SetName             RulesID        RuleName         
    0         Standard_1        10            name_abc
    0         Standard_1        11            name_xyz 
    1         Standard_2        12            name_arg
Run Code Online (Sandbox Code Playgroud)

列表中可能有两个以上的字典。

我正在考虑使用 pop、explode 或 hub 函数来构建数据框,但我不知道如何开始。

每一条建议都将非常感激!

编辑:要构建数据框,您可以使用以下数据框构造函数:

# initialize list of lists
data = [[0, 'Standard_1', [{'RulesID': '10', 'RuleName': 'name_abc'}, {'RulesID': '11', 'RuleName': 'name_xyz'}]], [1, 'Standard_2', [{'RulesID': '12', 'RuleName': 'name_arg'}]]]
 
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['SetID', 'SetName', …
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
590
查看次数

Scrapy:如何在一次爬虫运行中将抓取的数据存储在不同的json文件中?

我正在使用通用蜘蛛程序,并在该字段中包含多个网址列表start_urls

是否可以json为每个 URL 导出一个文件?

据我所知,只能设置一个特定输出文件的路径。

任何解决此问题的想法都会受到奖励!

编辑:这是我的蜘蛛类:

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule

class MySpider(CrawlSpider):
    name = 'my_spider'
    start_urls =  start_urls = ['www.domain1.com','www.domain2.com', 
   'www.domain3.com']


    custom_settings = {
                'FEED_EXPORT_ENCODING': 'utf-8',
                'DEPTH_LIMIT': '1',
                'FEED_URI': 'file:///C:/path/to/result.json',
    }

    rules = (
        Rule(LinkExtractor(allow=r"abc"), callback='parse_item', follow=True),
    )

    def parse_item(self, response):
        all_text = response.xpath("//p/text()").getall()

        yield {
            "text": " ".join(all_text),
            "url": response.url,
        }
Run Code Online (Sandbox Code Playgroud)

python scrapy web-scraping

1
推荐指数
1
解决办法
932
查看次数

标签 统计

python ×3

pandas ×2

csv ×1

scrapy ×1

txt ×1

web-scraping ×1