小编ari*_*ari的帖子

如何测试一个字符串是否包含列表中的一个子字符串?

是否有任何功能相当于df.isin()df[col].str.contains()?的组合?

例如,假设我有这个系列 s = pd.Series(['cat','hat','dog','fog','pet']),并且我想找到s包含任何内容的所有地方['og', 'at'],我想要获得除了宠物之外的一切.

我有一个解决方案,但它相当不优雅:

searchfor = ['og', 'at']
found = [s.str.contains(x) for x in searchfor]
result = pd.DataFrame[found]
result.any()
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

python string match dataframe pandas

90
推荐指数
3
解决办法
8万
查看次数

获取GNU make中文件夹的基本名称

似乎GNU make解释的basename函数与bash的basename不同.前者剥去后缀,而后者也剥离路径.如何在makefile中获取文件夹的基本名称?

另外,为什么他们改变了呢?(我花了20分钟才找到错误的来源)

makefile gnu-make

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

main()需要docstring吗?

我一直以为main()函数(从中调用if __name__ == '__main__')不需要docstring,因为

  1. 从python中调用函数时可以看到main()文档字符串,但在模块外部,但通常只从命令行调用(文档字符串不可访问).

  2. main()应该充分理解它的想法,它不需要文档.

然而,从pep8:

为所有公共模块,函数,类和方法编写文档字符串.对于非公共方法,文档字符串不是必需的,但是您应该有一个注释来描述该方法的作用.此评论应出现在"def"行之后.

哪条思路胜出?

python documentation pep8

7
推荐指数
0
解决办法
2230
查看次数

在matplotlib中注释数据范围

如何为一系列数据添加注释?例如,说从数据x = 5x = 10比一些截止时,我怎么可能表明,在图形上.如果我用手进行注释,我只需在范围上方绘制一个大括号,并在括号上方写下我的注释.

我见过的最接近的是使用arrowstyle='<->'connectionstyle='bar',用两条箭头指向数据的边缘,用一条线连接它们的尾部.但这并不是正确的事; 您为注释输入的文本将其中一个箭头下方而不是在条形上方.

这是我的尝试,以及它的结果:

annotate(' ', xy=(1,.5),  xycoords='data',
            xytext=(190, .5), textcoords='data',
            arrowprops=dict(arrowstyle="<->",
                            connectionstyle="bar",
                            ec="k",
                            shrinkA=5, shrinkB=5,
                            )
            )
Run Code Online (Sandbox Code Playgroud)

注释尝试

我尝试解决方案的另一个问题是注释括号的方形形状并没有真正表明我突出显示范围(不像,例如,大括号).但我想这只是在挑剔.

matplotlib

6
推荐指数
4
解决办法
2446
查看次数

从Syntastic隐藏装订线

使用语法检查器Syntastic调出一个指向所有有错误的行的装订线.一旦我完成检查,我想隐藏这个阴沟.我找到的唯一方法是重新打开同一个文件.我一定错过了什么,我怎么隐藏阴沟?我试着:set foldcolumn=0无济于事.

vim syntastic

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

Python没有捕获异常

出于某种原因,当我抛出它时,我的代码没有捕获异常.我有

def trim_rad(rad):
    ...

    if not modrad.shape[0]:
        raise IndexError("Couldn't find main chunk")
    return modrad, thetas
Run Code Online (Sandbox Code Playgroud)

然后我调用该函数:

try:
    modrad, thetas = trim_rad(rad)
except IndexError("Couldn't find main chunk"):
    return 0
Run Code Online (Sandbox Code Playgroud)

然而,我仍然得到一个例外的追溯.我究竟做错了什么?

python

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