当我使用时,我有一个大约 52000 行的数据框,其中有一些重复
df_drop_duplicates()
Run Code Online (Sandbox Code Playgroud)
我丢失了大约 1000 行,但我不想删除这些行我想知道哪些是重复行
我正在使用 selenium 进行网络抓取,但它太慢了,所以我尝试使用 to 实例来加快速度。
我想要完成的是:
1) 创建instance_1
2) 创建instance_2
3) 在第一个实例中打开一个页面,
不执行任何操作
4) 在第一个实例中打开一个页面,
保存第一个实例的内容
5) 在第一个实例中打开一个新页面,
保存第一个实例的内容第二审
这个想法是利用加载第一个页面所需的时间来打开第二个页面。
links = ('https:my_page'+ '&LIC=' + code.split('_')[1] for code in data)
browser = webdriver.Firefox()
browser_2 = webdriver.Firefox()
first_link = links.next()
browser.get(first_link)
time.sleep(0.5)
for i,link in enumerate(links):
if i % 2: # i starts at 0
browser_2.get(link)
time.sleep(0.5)
try:
content = browser.page_source
name = re.findall(re.findall('&LIC=(.+)&SAW',link)[0]
with open(output_path + name,'w') as output:
output.write((content_2))
print 'error ' + str(i)
else:
browser.get(link)
time.sleep(0.5)
try:
content_2 …Run Code Online (Sandbox Code Playgroud) 我用来.extract()从xpath获取数据,如:
response.xpath('//*@id="bakery"]/span[2]/text()').extract()
Run Code Online (Sandbox Code Playgroud)
这个问题是我总是得到一个列表作为回应.例如:
['23']
Run Code Online (Sandbox Code Playgroud)
我只想要这个号码,所以我尝试:
response.xpath('//*@id="bakery"]/span[2]/text()').extract()[0]
Run Code Online (Sandbox Code Playgroud)
但这是一个问题是列表为空,虽然我可以使用异常来处理那个场景我想有更好的方法来做到这一点
我正在尝试使用scrapy抓取网站Coursetalk,我首先尝试使用Spider模板并收到404错误:
2017-12-29 23:34:30 [scrapy] DEBUG: Ignoring response <404 https://www.coursetalk.com/subjects/data-science/courses/>: HTTP status code is not handled or not allowed
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码:
import scrapy
class ListaDeCursosSpider(scrapy.Spider):
name = "lista_de_cursos"
start_urls = ['https://www.coursetalk.com/subjects/data-science/courses/']
def parse(self, response):
print response.body
Run Code Online (Sandbox Code Playgroud)
和来自scrapy的竞争日志:
2017-12-29 23:34:26 [scrapy] INFO: Scrapy 1.0.3 started (bot: coursetalk)
2017-12-29 23:34:26 [scrapy] INFO: Optional features available: ssl, http11, boto
2017-12-29 23:34:26 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'coursetalk.spiders', 'SPIDER_MODULES': ['coursetalk.spiders'], 'BOT_NAME': 'coursetalk'}
2017-12-29 23:34:27 [scrapy] INFO: Enabled extensions: CloseSpider, TelnetConsole, LogStats, CoreStats, SpiderState
2017-12-29 23:34:27 [boto] …Run Code Online (Sandbox Code Playgroud) 我需要在远程服务器上运行 selenium,因为服务器没有屏幕我使用 PhantomJS 作为 Web 驱动程序。这是我的代码:
import time
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import re
from selenium import webdriver
url = 'https://wiki.python.org/moin/HowTo/Sorting'
driver_1 = webdriver.PhantomJS()
driver_1.get(url)
content = driver_1.page_source
Run Code Online (Sandbox Code Playgroud)
在我的电脑上,它工作正常,但在那之后,我会打开其他页面,所以我需要代码继续运行一段时间。我正在从终端运行脚本:
python my_script.py
Run Code Online (Sandbox Code Playgroud)
并且脚本将在我访问服务器的同一终端上执行,因此我将无法断开连接,或者如果连接丢失,脚本将停止,我该如何处理这个问题?
我正在尝试用以下情况替换逗号:
123,123
Run Code Online (Sandbox Code Playgroud)
输出应该是:
123123
Run Code Online (Sandbox Code Playgroud)
为此,我尝试了这个:
re.sub('\d,\d','','123,123')
Run Code Online (Sandbox Code Playgroud)
但那也是删除数字,怎么能避免这个?
我只想重新编写该案例的逗号,这就是我正在使用正则表达式.对于这种情况,例如
'123,123 hello,word'
Run Code Online (Sandbox Code Playgroud)
所需的输出是:
'123123 hello,word'
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 Fast Word Mover 的距离库与 SpaCy 一起使用,对于GitHub中的相同示例
import spacy
import wmd
nlp = spacy.load('en_core_web_md')
nlp.add_pipe(wmd.WMD.SpacySimilarityHook(nlp), last=True)
doc1 = nlp("Politician speaks to the media in Illinois.")
doc2 = nlp("The president greets the press in Chicago.")
print(doc1.similarity(doc2))
Run Code Online (Sandbox Code Playgroud)
结果是:
6.070106029510498
Run Code Online (Sandbox Code Playgroud)
我不知道如何解释它,因为距离通常是标准化的(0 到 1)。在自述文件中,此结果不可用,因此我不确定我的结果是否错误或此测量的比例不同。
我正在尝试重现类似于此的灵敏度特异性图:其中 X 轴是阈值
但是我还没有找到怎么做,一些像 ROC 曲线这样的 skalern 指标会返回真阳性和假阳性,但我还没有找到任何选项来制作这个图。
我试图将概率与实际标签进行比较以保持计数,我得到的情节是这样的:
因此,X 标签必须标准化,以便曲线实际上可以上下移动。
当尝试构建 docker 映像时,我不断收到以下错误:
Step 6/8 : COPY . /app
Error processing tar file(exit status 1): write /app/.git/objects/81/4f44ad8c3bef33a0bb0729bee8f251a327d9a8: no space left on device
Run Code Online (Sandbox Code Playgroud)
如果我使用的话,这是固定的:
docker system prune
Run Code Online (Sandbox Code Playgroud)
我使用以下方法删除以前的图像:
docker rmi <my_image>
Run Code Online (Sandbox Code Playgroud)
问题是,这使得整个测试非常乏味,因为每次更改后我都必须从头开始创建图像。
REPOSITORY TAG IMAGE ID CREATED SIZE
my_image latest 12b2499ac23d 52 minutes ago 6.67GB
Run Code Online (Sandbox Code Playgroud)
这是我每次都必须删除和创建的图像。我的机器上仍然有剩余空间,所以真的找不到这里的问题是什么:
编辑
来自 df -ih
我希望从 azure blob 中读取大量小文件,这可能是 1k-100k 个文件的顺序,总共有几个 1TB。我必须在 python 中处理这些文件,它本身的处理并不繁重,但是从 blob 中读取文件确实需要时间。另一个限制是,当我处理第一个文件时,新文件已被写入。
我正在寻找执行此操作的选项,是否可以使用 dask 从 blob 并行读取多个文件?或者是否可以在 azure 网络内每小时传输和加载超过 1tb 的数据?