是否有任何功能相当于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)
有一个更好的方法吗?
似乎GNU make解释的basename函数与bash的basename不同.前者剥去后缀,而后者也剥离路径.如何在makefile中获取文件夹的基本名称?
另外,为什么他们改变了呢?(我花了20分钟才找到错误的来源)
我一直以为main()
函数(从中调用if __name__ == '__main__'
)不需要docstring,因为
从python中调用函数时可以看到main()
文档字符串,但在模块外部,但通常只从命令行调用(文档字符串不可访问).
main()
应该充分理解它的想法,它不需要文档.
然而,从pep8:
为所有公共模块,函数,类和方法编写文档字符串.对于非公共方法,文档字符串不是必需的,但是您应该有一个注释来描述该方法的作用.此评论应出现在"def"行之后.
哪条思路胜出?
如何为一系列数据添加注释?例如,说从数据x = 5
到x = 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)
我尝试解决方案的另一个问题是注释括号的方形形状并没有真正表明我突出显示范围(不像,例如,大括号).但我想这只是在挑剔.
使用语法检查器Syntastic调出一个指向所有有错误的行的装订线.一旦我完成检查,我想隐藏这个阴沟.我找到的唯一方法是重新打开同一个文件.我一定错过了什么,我怎么隐藏阴沟?我试着:set foldcolumn=0
无济于事.
出于某种原因,当我抛出它时,我的代码没有捕获异常.我有
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)
然而,我仍然得到一个例外的追溯.我究竟做错了什么?