小编Dav*_*vid的帖子

通过contains str过滤pandas数据帧行

我有一个python pandas数据帧df,有很多行.从这些行中,我想切出来,只使用'body'列中包含单词'ball'的行.要做到这一点,我可以这样做:

df[df['body'].str.contains('ball')]

问题是,我希望它不区分大小写,这意味着如果Ball或bAll这个词出现,我也会想要那些.进行不区分大小写搜索的一种方法是将字符串转换为小写,然后搜索该方式.我想知道该怎么做.我试过了

df[df['body'].str.lower().contains('ball')]

但这不起作用.我不确定我是否应该在这个或那种性质的东西上使用lambda函数.

python string pandas

20
推荐指数
1
解决办法
2万
查看次数

允许El Capitan上的Python.app(OS X)

在此输入图像描述

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,恼人的对话框不再弹出.我的知识不需要代码签名.希望这有助于某人.

python macos

12
推荐指数
1
解决办法
544
查看次数

pandas在列中使用额外的逗号读取csv

我正在读一个基本的csv文件,其中列用逗号分隔,并带有以下列名:

userid, username, body

但是,body列是一个可能包含逗号的字符串.显然这会导致问题,并且大熊猫会抛出错误:

CParserError: Error tokenizing data. C error: Expected 3 fields in line 3, saw 8

有没有办法告诉大熊猫忽略特定列中的逗号或解决此问题的方法?

python csv pandas

11
推荐指数
3
解决办法
2万
查看次数

矢量到矩阵的余弦距离

在python中,是否有一种矢量化的有效方法来计算稀疏数组u到稀疏矩阵的余弦距离v,从而得到[1, 2, ..., n]对应于的元素数组cosine(u,v[0]), cosine(u,v[1]), ..., cosine(u, v[n])

python vectorization cosine-similarity

5
推荐指数
1
解决办法
2838
查看次数

显示多索引熊猫数据框的前10行

我有一个多级索引熊猫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)

python multi-index pandas

4
推荐指数
2
解决办法
3332
查看次数

向子类方法中的函数添加钩子

给出以下简化代码:

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 inheritance

4
推荐指数
1
解决办法
2290
查看次数

点积稀疏矩阵

我在以下维度的python中有两个稀疏矩阵(ab):

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)

但这需要逐行迭代并将每行转换为密集向量,这非常耗时。我在想可能有一种更简单的方法...

python numpy sparse-matrix dot-product python-3.x

3
推荐指数
1
解决办法
8052
查看次数

找到部分子集python

我正在寻找一种方法来获得另一个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

python set

2
推荐指数
1
解决办法
119
查看次数

使用右括号vim搜索文本

我有一个包含以下内容的文件:

<html>html
Run Code Online (Sandbox Code Playgroud)

我如何使用vim搜索和选择 <html>?如果我搜索:

/\<html\>
Run Code Online (Sandbox Code Playgroud)

它选择所有html(包括in <html>和in html),但不是<html>唯一的.

vim

0
推荐指数
1
解决办法
34
查看次数