我有一个python pandas数据帧df
,有很多行.从这些行中,我想切出来,只使用'body'列中包含单词'ball'的行.要做到这一点,我可以这样做:
df[df['body'].str.contains('ball')]
问题是,我希望它不区分大小写,这意味着如果Ball或bAll这个词出现,我也会想要那些.进行不区分大小写搜索的一种方法是将字符串转换为小写,然后搜索该方式.我想知道该怎么做.我试过了
df[df['body'].str.lower().contains('ball')]
但这不起作用.我不确定我是否应该在这个或那种性质的东西上使用lambda函数.
我python
在虚拟环境中使用可执行文件.我试着完成这里codesign
描述的所有事情,包括创建证书等.命令工作,但结果保持不变.我认为它曾经用于OS X的早期版本,但我目前使用最新的El Capitan版本(10.11.6)并且它不再起作用了.关于如何修复它的任何想法?
编辑:我确实看到了这个解决方案,但由于我的python是在虚拟环境中,我不确定它是否适用,除非你们不这么说......
编辑2:我尝试了上面的解决方案,没有用.我应该提一下,我在virtualenv中对python可执行文件进行了编码.
编辑3:最终为我工作的事情是升级flask
到当前版本,(使用pip install flask --upgarde
),并运行应用程序,export FLASK_APP=app.py; flask run
而不是使用python app.py
.当您运行应用程序时flask run
,恼人的对话框不再弹出.我的知识不需要代码签名.希望这有助于某人.
我正在读一个基本的csv文件,其中列用逗号分隔,并带有以下列名:
userid, username, body
但是,body列是一个可能包含逗号的字符串.显然这会导致问题,并且大熊猫会抛出错误:
CParserError: Error tokenizing data. C error: Expected 3 fields in line 3, saw 8
有没有办法告诉大熊猫忽略特定列中的逗号或解决此问题的方法?
在python中,是否有一种矢量化的有效方法来计算稀疏数组u
到稀疏矩阵的余弦距离v
,从而得到[1, 2, ..., n]
对应于的元素数组cosine(u,v[0]), cosine(u,v[1]), ..., cosine(u, v[n])
?
我有一个多级索引熊猫DataFrame
,其中第一级是year
,第二级是username
。我只有一列已按降序排序。我想显示每个索引级别0的前2行。
我所拥有的:
count
year username
2010 b 677
a 505
c 400
d 300
...
2014 a 100
b 80
Run Code Online (Sandbox Code Playgroud)
我想要的是:
count
year username
2010 b 677
a 505
2011 c 677
d 505
2012 e 677
f 505
2013 g 677
i 505
2014 h 677
j 505
Run Code Online (Sandbox Code Playgroud) 给出以下简化代码:
from abc import ABC, abstractmethod
class Parent(ABC):
def __init__(self,*args,**kwargs):
self.parent_name = 'SuperClass'
# global hook to run before each subclass run()
def global_pre_run_hook(self):
pass
@abstractmethod
def run(self, *args, **kwargs):
raise NotImplementedError()
class Child(Parent):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.name = 'ChildClass'
def run(self):
print(f'my parent name is {self.parent_name}')
print(f'my name is {self.name}')
return 22
obj = Child()
result = obj.run()
Run Code Online (Sandbox Code Playgroud)
有没有办法添加功能,以便run()
直接调用子类方法时,首先触发父类的钩子函数?假设有一个父类和许多子类,我是否需要在每个子类的call global hook()
每个定义的开头手动添加一个?有没有一种Pythonic的方法来完成这个?run()
Parent()
我在以下维度的python中有两个稀疏矩阵(a
和b
):
a = <240760x2177930 sparse matrix of type '<class 'numpy.float64'>'
with 1127853 stored elements in Compressed Sparse Row format>
Run Code Online (Sandbox Code Playgroud)
和
b = <240760x2177930 sparse matrix of type '<class 'numpy.float64'>'
with 439309 stored elements in Compressed Sparse Row format>
Run Code Online (Sandbox Code Playgroud)
问题:我想得到一个长度为240760的列向量,它是两个矩阵的逐行点积。例如,dot(a[0],b[0])
将是我的输出向量的第一个元素。dot(a[1],b[1])
将是第二个,依此类推。
有矢量化的简便方法可以实现此目的吗?
编辑: 一种实现此目的的方法是将每一行转换为一个密集向量,将其展平,然后使用numpy.dot()
。就像是:
np.dot(np.array(a[0]).flatten(),np.array(b[0]).flatten()).
Run Code Online (Sandbox Code Playgroud)
但这需要逐行迭代并将每行转换为密集向量,这非常耗时。我在想可能有一种更简单的方法...
我正在寻找一种方法来获得另一个set
中出现的元素数量set
.
鉴于这两组:
a = 'a b c d'
b = 'a b c e f'
a = set(a.split())
b = set(b.split())
Run Code Online (Sandbox Code Playgroud)
这打印错误:
print a.issubset(b) # prints False
Run Code Online (Sandbox Code Playgroud)
是否有一种pythonic方式来打印"3",因为a
出现了三个元素b
?
我有一个包含以下内容的文件:
<html>html
Run Code Online (Sandbox Code Playgroud)
我如何使用vim搜索和选择只 <html>
?如果我搜索:
/\<html\>
Run Code Online (Sandbox Code Playgroud)
它选择所有html
(包括in <html>
和in html
),但不是<html>
唯一的.
python ×8
pandas ×3
csv ×1
dot-product ×1
inheritance ×1
macos ×1
multi-index ×1
numpy ×1
python-3.x ×1
set ×1
string ×1
vim ×1