小编Coo*_*pix的帖子

以低优先级Popen启动进程

我正在寻找一种在Windows中以低优先级有效启动多个进程的方法.我试过了 :

def run(command):
    # command['Program.exe args1 args2','output_file']
    try :
        p = subprocess.Popen(command[0] , stdout = command[1])
        psutil.Process(p.pid).nice(psutil.BELOW_NORMAL_PRIORITY_CLASS)
        p.wait()
    except Exception as e:
        print(e)
        raise SystemExit
Run Code Online (Sandbox Code Playgroud)

问题是:低优先级不会立即设置.我开始时会冻结一些.当我仔细观察过程窗口时,我可以看到应用程序的优先级从high_priority开始并切换到low_priority.

我想立即以低优先级启动或找到另一种方法来阻止CPU使用率(现在100%).

然后我在多处理池中使用run命令(每次运行几秒钟).

def safe_run(args):
    """Call run(), catch exceptions."""
    try: 
        run(args)
    except Exception as e:
        print(args[0])
        print(e)


def parallel(commands,nb_proc):
    # populate files
    # start processes
    if len(commands) < 10:
        nb_proc = 1
    print('Use of {} cpus\n'.format(nb_proc))
    pool = mp.Pool(nb_proc)
    pool.map(safe_run, commands, chunksize=1) 
Run Code Online (Sandbox Code Playgroud)

UPDATE

Test.exe是一个fortran代码:

    integer function NumArguments()
        integer :: IARGC
        NumArguments = IARGC()
    end …
Run Code Online (Sandbox Code Playgroud)

python psutil python-multiprocessing

8
推荐指数
2
解决办法
2245
查看次数

使用 xlwings 将整个工作表转换为熊猫数据框

感谢panda,我们可以使用“read_excel”函数将整张表读入数据框。

我想使用 xlwings 使用相同的方法。事实上,我的工作簿已经打开,我不想使用 read_excel 函数(顺便说一下,女巫执行时间太长)而是使用 xlwings 的强大功能将整个工作表保存到数据帧中。

事实上,使用 xlwings 我们可以将一个范围保存到一个数据帧中。这意味着我必须知道范围大小。但我想有更好(更快!)的方法来做到这一点,不是吗?

你有这样做的想法吗?非常感谢 !

编辑:我想将一张工作表的一个例子转移到一个数据帧中,因为 read_excel 会这样做。

Name Point  Time    Power   Test1   Test2   Test3   Test4 ##
Test    0   1   10  4   24  144
        2   20  8   48  288
        3   30  12  72  432
        4   40  16  96  576
        5   50  20  120 720
        6   60  24  144 864
        7   70  28  168 1008
        8   80  32  192 1152
        9   90  36  216 1296
        10  100 40  240 1440
        11  110 44 …
Run Code Online (Sandbox Code Playgroud)

python excel pandas xlwings

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

使用参数列表删除行pandas

我想删除pandas DataFrame中不在列表中的所有行

例如,考虑这个数据帧:

data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 
    'year': [2012, 2012, 2013, 2014, 2014], 
    'reports': [4, 24, 31, 2, 3]}
df = pd.DataFrame(data, index = ['Cochice', 'Pima', 'Santa         Cruz', 'Maricopa', 'Yuma'])
df
Run Code Online (Sandbox Code Playgroud)

要按名称删除一行,这很容易:

df = df[df.name != 'Tina'] # to drop the row which include Tina in the name column
Run Code Online (Sandbox Code Playgroud)

但如果我只想保留Jason和Molly这一行:

List=['Jason', 'Molly']
df = df[df.name not in List]
Run Code Online (Sandbox Code Playgroud)

不起作用!

python list dataframe pandas

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