假设我有一个DataFrame df
,日期作为索引和一些值.如何选择日期大于某个值的行x
?
我知道我可以将索引转换为列然后执行select df[df['date']>x]
,但是比在索引上执行操作要慢吗?
在pysqlite中,违反NOT NULL
或UNIQUE
约束同样会引发IntegrityError.不幸的是,此Exception类型不提供错误代码,而只提供消息.
所以,假设我想忽略唯一约束违规,因为我知道这对给定数据是安全的,但是应该报告关键列中的Null值.
我想出了以下解决方案:
con = sqlite3.connect(':MEMORY:')
con.execute('''CREATE TABLE ABCD (A TEXT NOT NULL,
B TEXT NOT NULL,
C TEXT NOT NULL,
D TEXT NOT NULL,
PRIMARY KEY (A, B))''')
with con:
for a, b, c, d in inputs:
try:
con.execute('INSERT INTO ABCD VALUES (?, ?, ?, ?)',
(a, b, c, d))
except sqlite3.IntegrityError as e:
# Skip 'not unique' errors, but raise others.
if not e.message.endswith('not unique'):
raise
con.close()
Run Code Online (Sandbox Code Playgroud)
但是,解析错误消息似乎是错误的,可能不可靠.有没有更好的方法来做到这一点,甚至可能使用con.executemany()
?
我正在考虑第一次接触html语言时,我记得当我在寻找带有点的特定按钮时.它为您提供了一些选择,您只能选择其中一个.我发现它被称为单选按钮.我不知道"无线电"这个词是如何与这样的事情相关的,我认为是时候解开这个谜团了.
所以我的问题是......为什么它被称为单选按钮?
这个问题可能没有特定的目的,但我仍然很好奇.
谢谢
ps我不知道我应该用于问题的标签,所以任何改变的建议都会受到欢迎
我有丹麦WordNet的.txt文件.有没有办法将这个用于Python的NLP库,如NLTK?如果没有,您将如何使用给定库不支持的语言进行自然语言处理.还要说你想在像spaCy这样的库中用英语或荷兰语以外的语言进行命名实体识别.有没有办法做到这一点?
我需要从一组嵌套配置值创建一个标识符令牌。\n该令牌可以是 URL 的一部分,因此 \xe2\x80\x93 为了使处理更容易 \xe2\x80\x93 它应该只包含十六进制数字(或类似的东西)。\n配置值是嵌套元组,其中包含可哈希类型的元素int
,例如bool
、str
等。
我的想法是使用内置hash()
函数,因为即使配置结构发生变化,它也将继续工作。\n这是我的第一次尝试:
def token(config):\n h = hash(config)\n return '{:X}'.format(h)\n
Run Code Online (Sandbox Code Playgroud)\n\n这将产生可变长度的标记,但这并不重要。\n不过,令我困扰的是该标记可能包含一个前导减号,因为 的返回值是hash()
一个有符号整数。
作为避免该符号的一种方法,我想到了以下解决方法,即向哈希值添加一个常量。\n该常量应该是值可以采用的范围大小的一半hash()
(这是依赖于平台的,例如,32 位/64 位系统有所不同):
HALF_HASH_RANGE = 2**(sys.hash_info.width-1)\n
Run Code Online (Sandbox Code Playgroud)\n\n这是一个理智且便携的解决方案吗?\n或者我会用这个搬起石头砸自己的脚吗?
\n\n我还看到了使用的建议struct.pack()
(它返回一个bytes
对象,可以在该对象上调用该.hex()
方法),但它还需要提前知道哈希值的范围(以便选择正确的格式字符)。
附录:
\n加密强度或偶然的冲突不是问题。\nhashlib
在这种情况下,该库的缺点是它需要编写一个转换器来遍历输入结构并将所有内容转换为bytes
表示形式,这很麻烦。
我试图通过可选地应用替换来生成字符串变体.
例如,一种替换方案是删除任何空白字符序列.而不是替换所有出现的事件
>>> re.sub(r'\s+', '', 'a b c')
'abc'
Run Code Online (Sandbox Code Playgroud)
- 相反,我需要为每次出现生成两个变体,因为替换是在一个变体中执行,而不是在另一个变体中执行.对于字符串'a b c'
我想要变种
['a b c', 'a bc', 'ab c', 'abc']
Run Code Online (Sandbox Code Playgroud)
即.所有二元决策的叉积(结果显然包括原始字符串).
对于这种情况,可以使用re.finditer
和生成变体itertools.product
:
def vary(target, pattern, subst):
occurrences = [m.span() for m in pattern.finditer(target)]
for path in itertools.product((True, False), repeat=len(occurrences)):
variant = ''
anchor = 0
for (start, end), apply_this in zip(occurrences, path):
if apply_this:
variant += target[anchor:start] + subst
anchor = end
variant += target[anchor:]
yield variant
Run Code Online (Sandbox Code Playgroud)
这为上面的例子产生了所需的输出:
>>> list(vary('a b c', re.compile(r'\s+'), …
Run Code Online (Sandbox Code Playgroud) 我想将模态事件从模态组件传递给模态的父组件,但由于某种原因,我似乎无法让EventEmitter工作.如果有人有想法,将不胜感激.主要代码如下,从ng-bootstrap演示分叉的(非工作)插件在这里:http://plnkr.co/edit/xZhsqBV2mQaPxqFkoE7C?p = preview
app.ts
@Component({
selector: 'my-app',
template: `
<div class="container-fluid" (notifyParent)="getNotification($event)">
<template ngbModalContainer></template>
<ngbd-modal-component ></ngbd-modal-component>
</div>
`
})
export class App {
getNotification(evt) {
console.log('Message received...');
}
}
Run Code Online (Sandbox Code Playgroud)
莫代尔,component.ts
import {Component, Input, Output, EventEmitter} from '@angular/core';
import {NgbModal, NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';
@Component({
selector: 'ngbd-modal-content',
template: `
<div class="modal-body">
<p>Hello, {{name}}!</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" (click)="activeModal.close('Close click')">Close</button>
<button type="button" class="btn btn-secondary" (click)="notify()">Notify</button>
</div>
`
})
export class NgbdModalContent {
@Input() name;
@Output() notifyParent: EventEmitter<any> …
Run Code Online (Sandbox Code Playgroud) 我有一个csv文件,我正在尝试完成操作.我创建了一个数据框,其中一列标题为"start_date",其中包含保修开始日期.我遇到的问题是日期的格式不一致.我想知道从今天的日历日期开始的天数和该产品的保修期.
此start_date系列中的两个条目示例:
9/11/15
9/11/15 0:00
Run Code Online (Sandbox Code Playgroud)
如何识别这些格式并对其进行相应处理?
我为我的幼稚而感到抱歉,但我不明白为什么NN训练过程(word2vec)产生的词嵌入实际上是向量。
嵌入是降维的过程,在训练过程中,NN将词的1/0数组缩小为较小的数组,该过程不执行任何应用矢量算法的过程。
因此,结果是我们只有数组而不是向量。为什么将这些数组视为向量?
即使我们得到矢量,为什么每个人都将它们描述为来自原点(0,0)的矢量?
再次,对不起,如果我的问题看起来很愚蠢。
我是 Python 的新手。在练习期间,我应该使用掩码将以下列表中所有低于 100 的值乘以 2:
a = np.array([230, 10, 284, 39, 76])
Run Code Online (Sandbox Code Playgroud)
所以我写了下面的代码:
import numpy as np
a = np.array([230, 10, 284, 39, 76])
cut = 100
a[a < cut] = a*2
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
IndexError: index 230 is out of bounds for axis 0 with size 5
这令人困惑,因为根据我的理解,a
in[a < cut]
实际上指的是 array 中的每个值a
,但a
ina*2
指的是整个数组。
如何使用屏蔽方法而不是使用循环更正此代码?
以下示例创建anagram字典.然而,它抛出一个TypeError: 'LazyCorpusLoader' object is not an iterator
:
import nltk
from nltk.corpus import words
anagrams = nltk.defaultdict(list)
for word in words:
key = ''.join(sorted(word))
anagrams[key].append(word)
print(anagrams['aeilnrt'])
Run Code Online (Sandbox Code Playgroud)