我想把巴西名字分成几部分.但是,有下面的名称,其中"de","da"(和其他)不是单独的部分,它们总是与下面的单词一起使用.所以正常分裂不起作用.
test1 = "Francisco da Sousa Rodrigues" #special split
test2 = "Emiliano Rodrigo Carrasco" #normal split
test3 = "Alberto de Francia" #special split
test4 = "Bruno Rezende" #normal split
Run Code Online (Sandbox Code Playgroud)
我的预期输出是:
[Francisco, da Sousa, Rodrigues] #1
[Emiliano, Rodrigo, Carrasco] #2
[Alberto, de Francia] #3
[Bruno, Rezende] #4
Run Code Online (Sandbox Code Playgroud)
对于特殊情况,我尝试了这种模式:
PATTERN = re.compile(r"\s(?=[da, de, do, dos, das])")
re.split(PATTERN, test1) (...)
Run Code Online (Sandbox Code Playgroud)
但输出不是我的预期:
['Francisco', 'da Sousa Rodrigues'] #1
['Alberto', 'de Francia'] #3
Run Code Online (Sandbox Code Playgroud)
知道怎么解决吗?有没有办法只使用一种模式"正常"和"特殊"情况?
我在熊猫中有以下DF:
+---------+--------+--------------------+
| keyword | weight | other keywords |
+---------+--------+--------------------+
| dog | 0.12 | [cat, horse, pig] |
| cat | 0.5 | [dog, pig, camel] |
| horse | 0.07 | [dog, camel, cat] |
| dog | 0.1 | [cat, horse] |
| dog | 0.2 | [cat, horse , pig] |
| horse | 0.3 | [camel] |
+---------+--------+--------------------+
Run Code Online (Sandbox Code Playgroud)
我想要执行的任务是按关键字进行分组,同时计算关键字频率,按权重平均并按其他关键字求和.结果将是这样的:
+---------+-----------+------------+------------------------------------------------+
| keyword | frequency | avg weight | sum other keywords |
+---------+-----------+------------+------------------------------------------------+
| …Run Code Online (Sandbox Code Playgroud) 我有一个包含人员数据的大数据框。我想压平所有奇怪的变音符号并将它们转换为最接近的 ascii 字符。基于我在 SO 中找到的解决方案,我执行以下操作:
for column in df.columns:
df[column] = df[column].astype("str").str.normalize('NFKD').str.encode('ascii', errors='ignore').str.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)
它适用于大多数情况(还没有全部检查过)但是我注意到它漏掉了字母 '?' 用波兰语。例如Lech Wa??sa被翻译成Lech Waesa而我的期望是看到Lech Walesa. 我的猜测是它是ignore参数在str.encode方法中的作用。知道如何使它适用于任何变音符号吗?
我有两个谷歌电子表格:
QC- 很多列,我想检查第 4 列的值是否出现在第二个电子表格 lastEdited_PEID 中;如果是这样,它会放“宾果游戏!” 在找到值的同一行的第 14 列中
lastEdited- 一列,值的长电子表格
我使用以下代码实现了这一点:
#acces the documents on Drive
QC = gc.open_by_key("FIRST KEY").sheet1
lastEdited = gc.open_by_key("SECOND KEY").sheet1
#get values from columns and convert to lists
QC_PEID = QC.col_values(4)
lastEdited_PEID = lastEdited.col_values(1)
#iterate by rows and check if value from each row appears in the second document
for value in QC_PEID:
ind = QC_PEID.index(value)
if value in lastEdited_PEID:
QC.update_cell(ind, 14, 'Bingo!')
Run Code Online (Sandbox Code Playgroud)
所以它完成了这项工作,但它的执行速度非常慢(大约 5 分钟)。我担心速度,因为我必须为大约 50 个电子表格(每个平均 6000 行)执行操作。
我尝试使用循环中的以下代码在找到时从第二个列表中删除元素(它只能出现一次):
for value in …Run Code Online (Sandbox Code Playgroud) 我正在尝试抓取这个网站http://bombayhighcourt.nic.in/party_query.php。一切顺利,直到我第一次抓取结果并返回此页面。然后出现以下警报:
我可以看到负责警报的代码是这样的:
function validate()
{
with(document.pqueryfrm)
{
if(trim(m_party.value)=="")
{
alert("Enter Party Name");
m_party.focus();
return false;
}
if(m_party.value=="")
{
alert("Enter Party Name");
m_party.focus();
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用此代码在此警报中单击“确定”,但它没有执行任何操作:
try:
WebDriverWait(s.mydriver, 3).until(EC.alert_is_present(),"Enter Party Name" )
alert = s.mydriver.switch_to.alert()
alert.accept()
print("alert accepted")
except TimeoutException:
print ("no alert")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
UnexpectedAlertPresentException: Alert Text: None
Message: unexpected alert open: {Alert text : Enter Party Name}
(Session info: chrome=55.0.2883.87)
(Driver info: chromedriver=2.26.436362 (5476ec6bf7ccbada1734a0cdec7d570bb042aa30),platform=Windows NT 6.1.7601 SP1 x86_64)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我的程序执行以下操作:
我担心程序的同步版本的性能,所以试图aiohttp使其异步(这是我在Python中除了Scrapy之外的第一次异步编程尝试).原来,异步代码花了2倍的时间,我不明白为什么.
同步代码(152秒)
url = "http://localhost:6090/api/analyzexml"
package = #name of the package I send in each requests
with open("template.txt", "r", encoding="utf-8") as f:
template = f.read()
articles_path = #location of my text files
def fetch(session, url, article_text):
data = {"package": package, "data": template.format(article_text)}
response = session.post(url, data=json.dumps(data))
print(response.text)
files = glob(os.path.join(articles_path, "*.txt"))
with requests.Session() as s:
for file in files:
with open(file, "r", encoding="utf-8") as f:
article_text = f.read()
fetch(s, url, article_text)
Run Code Online (Sandbox Code Playgroud)
分析结果: …