我有以下数据框:
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)
逗号分隔不是必须的,但所有值都应该位于一行中。这些值也可以存储在逗号分隔的字符串列表中。
我有以下数据框,其中“规则”列的列表中包含多个字典。
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) 我正在使用通用蜘蛛程序,并在该字段中包含多个网址列表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)