小编Pou*_*del的帖子

如何在 Linux 中为所有 Python 脚本授予可执行权限?

假设我有一个名为a.py的 python 脚本,如下所示:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Author    : Bhishan Poudel
# Date      : Jul 13, 2016


# Imports


# Script
print("hello")
Run Code Online (Sandbox Code Playgroud)

我可以通过两种方式运行这个脚本:
使用 python 解释器:

python3 a.py
Run Code Online (Sandbox Code Playgroud)

更改权限

chmod a+x a.py; ./a.py
Run Code Online (Sandbox Code Playgroud)

问题
如何在不一直使用chmod a+x script_name的情况下运行任何新的或旧的 python 脚本。

我对我的计算机具有 root 访问权限和用户访问权限。

基本上我想要所有 .py 文件的可执行权限,我们该怎么做?

我尝试了不同的shebangs,例如:

#!/usr/bin/python3
#!/usr/bin/env python3
#!/usr/local/bin/python3
#!/usr/local/bin/env python3
Run Code Online (Sandbox Code Playgroud)

python 解释器也在 $PATH 中。echo $PATH 的输出如下:

/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/texbin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/opt/local/bin:/Users/poudel/phosim:/Users/poudel/Applications:/usr/local/octave/3.8.0/bin:/Users/poudel/Applications/Geany.app/Contents/MacOS/:/opt/local/bin:/Users/poudel/phosim:/Users/poudel/Applications:/usr/local/octave/3.8.0/bin:/Applications/Geany.app/Contents/MacOS/:/opt/local/bin:/Users/poudel/phosim:/Users/poudel/Applications:/usr/local/octave/3.8.0/bin:/Applications/Geany.app/Contents/MacOS/
Run Code Online (Sandbox Code Playgroud)

此外, ls /usr/bin/py* 具有:

/usr/bin/pydoc*            /usr/bin/python2.5@        /usr/bin/pythonw*
/usr/bin/pydoc2.5@         /usr/bin/python2.5-config@ /usr/bin/pythonw2.5@
/usr/bin/pydoc2.6@         /usr/bin/python2.6@        /usr/bin/pythonw2.6@ …
Run Code Online (Sandbox Code Playgroud)

python bash executable path chmod

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

Python:如何在ALL文件,文件夹和子文件夹的名称中用下划线替换空格?

我们如何替换给定父文件夹中文件夹,子文件夹和文件名称中的空格?

我最初尝试更换到8级,如下所示.我相信有更好的方法.我的代码看起来很难看.更好的解决方案非常受欢迎.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#


def replace_space_by_underscore(path):
    """Replace whitespace in filenames by underscore."""
    import glob
    import os
    for infile in glob.glob(path):
        new = infile.replace(" ", "_")
        try:
            new = new.replace(",", "_")
        except:
            pass
        try:
            new = new.replace("&", "_and_")
        except:
            pass
        try:
            new = new.replace("-", "_")
        except:
            pass
        if infile != new:
            print(infile, "==> ", new)
        os.rename(infile, new)

if __name__ == "__main__":
    try:
        replace_space_by_underscore('*/*/*/*/*/*/*/*')
    except:
        pass
    try:
        replace_space_by_underscore('*/*/*/*/*/*/*')
    except:
        pass
    try:
        replace_space_by_underscore('*/*/*/*/*/*')
    except:
        pass
    try:
        replace_space_by_underscore('*/*/*/*/*') …
Run Code Online (Sandbox Code Playgroud)

python batch-rename

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

相当于熊猫中 SQL 的 LIMIT 和 OFFSET?

我有一个这样的数据框:

   id type city
0   2    d    H
1   7    c    J
2   7    x    Y
3   2    o    G
4   6    i    F
5   5    b    E
6   6    v    G
7   8    u    L
8   1    g    L
9   8    k    U
Run Code Online (Sandbox Code Playgroud)

我想使用 Pandas 获得与 SQL 命令中类似的输出:

select id,type
from df
order by type desc
limit 4
offset 2
Run Code Online (Sandbox Code Playgroud)

需要的结果是:

   id type
0   8    u
1   2    o
2   8    k
3   6    i
Run Code Online (Sandbox Code Playgroud)

我试图按照官方教程https://pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html#top-n-rows-with-offset

df.nlargest(4+2, columns='type').tail(4) …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何排除和过滤pandas中的几列?

我知道我们可以使用 pandas dataframe 过滤器仅选择几列,但是我们也可以仅排除某些列吗?

这是 MWE:

import numpy as np
import pandas as pd


df = pd.DataFrame({'id': [1,2,3], 'num_1': [10,20,30], 'num_2': [20,30,40]})

df.filter(regex='num')
Run Code Online (Sandbox Code Playgroud)

我们可以选择列中没有“num”的所有列吗:

就像是:

df.filter(regex='^(num)')
Run Code Online (Sandbox Code Playgroud)

所需输出

   id
0   1
1   2
2   3
Run Code Online (Sandbox Code Playgroud)

笔记

# these already works, i am only looking regex way
df[['id']] # gives the required output

Run Code Online (Sandbox Code Playgroud)

参考:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.filter.html

python dataframe pandas

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

如何在 bash 中将前缀组合到 ls 的输出中?

假设我在父目录中有一些图像:../imagea/a.png 和 ../images/b.png。

当我做:

ls ../images

# I get
../images/a.png
../images/b.png

Run Code Online (Sandbox Code Playgroud)

如何为所有这些输出添加前缀![](和后缀?)

我试过:

!ls ../images/*.png | cat

# am not sure what to do next
Run Code Online (Sandbox Code Playgroud)

所需输出

![](../images/a.png)
![](../images/b.png)
Run Code Online (Sandbox Code Playgroud)

感谢帮助。

python bash shell markdown jupyter-notebook

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

如何获得熊猫切割分类列的平均值

我使用 pandas cut 来分箱连续值。我想知道如何获得每个垃圾箱的平均值。

移动电源

import numpy as np
import pandas as pd

np.random.seed(100)
df = pd.DataFrame({'a': np.random.randint(1,10,10)})
df['bins_a'] = pd.cut(df['a'],4)

print(df)
   a        bins_a
0  9    (7.0, 9.0]
1  9    (7.0, 9.0]
2  4    (3.0, 5.0]
3  8    (7.0, 9.0]
4  8    (7.0, 9.0]
5  1  (0.992, 3.0]
6  5    (3.0, 5.0]
7  3  (0.992, 3.0]
8  6    (5.0, 7.0]
9  3  (0.992, 3.0]
Run Code Online (Sandbox Code Playgroud)

我试过:

df['bins_a_mean'] = df['bins_a'].mean()

But this fails.
Run Code Online (Sandbox Code Playgroud)

如何获得每个区间的均值?

python pandas

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

如何将 pandas groupby 部分传输到seaborn distplot?

我正在学习在 pandas 中使用 .pipe 方法,想知道我们是否可以使用它来绘制每组 groupby 的 distplot。

微量元素


import numpy as np
import pandas as pd
import seaborn as sns

# data
np.random.seed(100)
data = {'year': np.random.choice([2016, 2018, 2020], size=400),
        'item': np.random.choice(['Apple', 'Banana', 'Carrot'], size=400),
        'price': np.random.random(size=400)}

df = pd.DataFrame(data)

# distplots
for year in df['year'].unique():
    x = df['price'][df['year'] == year]
    sns.distplot(x, hist=False, rug=True)
Run Code Online (Sandbox Code Playgroud)

问题

我们可以使用 pandas groupby 而不使用 for 循环得到相同的图吗?

我的尝试:

df.groupby('year').pipe(lambda dfx: sns.distplot(dfx['price']))
# TypeError: cannot convert the series to <class 'float'>

# df[['year','price']].groupby('year').pipe(sns.distplot)
# TypeError: float() …
Run Code Online (Sandbox Code Playgroud)

python pandas seaborn

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

如何在 scikit 学习列选择器管道中只选择几列?

我正在阅读有关列转换器的 scikitlearn 教程。给定的示例(https://scikit-learn.org/stable/modules/generated/sklearn.compose.make_column_selector.html#sklearn.compose.make_column_selector)有效,但是当我尝试仅选择几列时,它给了我错误.

移动电源

import numpy as np
import pandas as pd
import seaborn as sns

from sklearn.compose import make_column_transformer
from sklearn.compose import make_column_selector

df = sns.load_dataset('tips')
mycols = ['tip','sex']


ct = make_column_transformer(make_column_selector(pattern=mycols)
ct.fit_transform(df)
Run Code Online (Sandbox Code Playgroud)

必需的

我只想要输出中的选择列。

注意
当然,我知道我可以做到df[mycols],我正在寻找 scikit 学习管道示例。

python pandas scikit-learn

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

如何从 jupyter 笔记本中删除停用的 conda 环境名称?

我在我的 macbook 中创建了多个 miniconda 环境。但是当我打开 jupyter 笔记本时,它显示我很久以前创建的不存在的 conda 环境,并且这些环境在 conda 环境中不再可用。

如何从jupyter笔记本中删除这些不存在的环境名称?

我当前的 conda 列表

在此输入图像描述

Jupyter 显示什么

(注意:例如,Jupyter 笔记本显示环境“xx”,该环境不在 conda env 列表中)

在此输入图像描述

如何删除不存在的环境

当我打开 jupyter 笔记本时,如何删除不存在的环境,例如“xx”?

python conda miniconda jupyter-notebook

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

如何从绘图中完全去除x轴(和y轴),并使用Python或R编程在某些点绘制切线?

我必须创建一个具有轴被抑制的图和定期绘制的切线,如下图所示.
使用R编程,我知道如何抑制刻度线并创建绘图.
但我不知道如何压制整个轴.

在这里,我需要省略整个a轴以及其他轴,例如顶轴和右轴.

我最初的尝试是这样的:

tau <- seq(-5,5,0.01)
a <- 0.4              # a is a constant parameter
sigma <- a*tau        # tau is a variable, sigma = a*tau
x <- 1/a*cosh(sigma)  
y <- 1/a*sinh(sigma)

 # plot
plot(x,y,type="l",xaxt="n",yaxt="n")
abline(h=0,lty=1)
Run Code Online (Sandbox Code Playgroud)

该图还需要在点处的点和切线a*tau = -1,-0.5, 0, 0.5 and 1.

我遵循的链接如下:
根据数据,绘制切线到绘图并使用绘图中某些点之间的R 线找到X轴截距
?(带R)

所需的情节如下所示:
在python或R中的任何建议都真的很受欢迎!! 在此输入图像描述

python plot r matplotlib ggplot2

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