小编use*_*113的帖子

循环中具有超时的用户输入

我正在尝试创建一个循环python函数,它执行任务并提示用户进行响应,如果用户在给定时间内没有响应,则序列将重复.

这是基于这个问题:如何设置raw_input的时间限制

任务由...表示some_function().超时是一个变量,以秒为单位.我有以下代码的两个问题:

  1. 无论用户是否提示,raw_input提示在指定的4秒时间后都不会超时.

  2. 当输入'q'的raw_input时(没有'',因为我知道键入的任何内容会自动输入为字符串),该函数不会退出循环.

`

import thread
import threading
from time import sleep

def raw_input_with_timeout():
    prompt = "Hello is it me you're looking for?"
    timeout = 4
    astring = None
    some_function()
    timer = threading.Timer(timeout, thread.interrupt_main)
    try:
        timer.start()
        astring = raw_input(prompt)
    except KeyboardInterrupt:
        pass
    timer.cancel()
    if astring.lower() != 'q':
        raw_input_with_timeout()
    else:
        print "goodbye"
Run Code Online (Sandbox Code Playgroud)

`

python raw-input keyboardinterrupt python-2.7

10
推荐指数
1
解决办法
3779
查看次数

多处理写入pandas数据帧

所以我想用以下代码做的是读取列表列表并通过调用函数将它们放入checker,然后log_result处理函数的结果checker.我试图使用多线程执行此操作,因为rows_to_parse实际上变量名称有数百万行,因此使用多个核心应该会大幅加快此过程.

目前的代码不起作用并导致Python崩溃.

我有的担忧和问题:

  1. 希望变量df中保存的现有df在整个过程中维护索引,否则log_result会对哪行需要更新感到困惑.
  2. 我很确定这apply_async不是适当的多处理函数来执行这个任务,因为我相信计算机读取和写入df的顺序可能会破坏它?
  3. 我认为可能需要设置一个队列进行写入和读取,df 但我不确定如何进行这样做.

谢谢你的帮助.

import pandas as pd
import multiprocessing
from functools import partial

def checker(a,b,c,d,e):
    match = df[(df['a'] == a) & (df['b'] == b) & (df['c'] == c) & (df['d'] == d) & (df['e'] == e)]
    index_of_match = match.index.tolist()
    if len(index_of_match) == 1: #one match in df
        return index_of_match
    elif len(index_of_match) > 1: #not likely because duplicates will be removed …
Run Code Online (Sandbox Code Playgroud)

python multithreading multiprocessing python-2.7 pandas

7
推荐指数
1
解决办法
6926
查看次数

查看DataFrame中是否存在值

在Python中检查值是否在列表中,您可以简单地执行以下操作:

>>>9 in [1,2,3,6,9]
True
Run Code Online (Sandbox Code Playgroud)

我想为Pandas DataFrame做同样的事情但不幸的是Pandas不承认这种表示法:

>>>import pandas as pd
>>>df = pd.DataFrame([[1,2,3,4],[5,6,7,8]],columns=["a","b","c","d"])
   a  b  c  d
0  1  2  3  4
1  5  6  7  8
>>>7 in df
False
Run Code Online (Sandbox Code Playgroud)

如何使用Pandas DataFrame实现这一目标而不迭代每个列/行或任何复杂的东西?

python dataframe pandas

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

使用groupby的列的累积列表

嗨所以我有以下数据帧:

   Fruit  metric
0  Apple     NaN
1  Apple   100.0
2  Apple     NaN
3  Peach    70.0
4   Pear   120.0
5   Pear   100.0
6   Pear     NaN
Run Code Online (Sandbox Code Playgroud)

我的目标是按果实分组并按顺序将每个值的metric非空值添加到具有其自己的单独列的累积列表中,如下所示:

   Fruit  metric  metric_cum
0  Apple     NaN          []
1  Apple   100.0       [100]
2  Apple     NaN       [100]
3  Peach    70.0        [70]
4   Pear   120.0       [120]
5   Pear   100.0  [120, 100]
6   Pear     NaN  [120, 100]
Run Code Online (Sandbox Code Playgroud)

我试过这样做:

df['metric1'] = df['metric'].astype(str)
df.groupby('Fruit')['metric1'].cumsum()
Run Code Online (Sandbox Code Playgroud)

但这导致了一个DataError: No numeric types to aggregate.

我也试过这样做:

df.groupby('Fruit')['metric'].apply(list)
Run Code Online (Sandbox Code Playgroud)

导致:

Fruit
Apple      [nan, 100.0, …
Run Code Online (Sandbox Code Playgroud)

python list dataframe pandas

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

python中的字符编码将'u2019'替换为'

我已尝试过多种方法将其编码为最终结果"BACK RUSHIN'",最重要的字符是右撇号'.

我想要一种方法来使用Python中的一些内置函数来获得最终结果,其中正常字符串和unicode字符串之间没有区别.

这是我用来检索字符串的代码: str(unicode(etree.tostring(root.xpath('path')[0],method='text', encoding='utf-8'),errors='ignore')).strip()

结果是:缺少'BACK RUSHIN'撇号的东西'.

另一种方式是: root.xpath('path/text()')

结果是:u'BACK RUSHIN\u2019'在python中.

最后,如果我尝试: u'BACK RUSHIN\u2019'.encode('ascii', 'replace')

结果是: 'BACK RUSHIN?'

请不要替换函数,我想利用pythons编解码库.也没有打印字符串,因为它被保存在变量中.

谢谢

python unicode lxml character-encoding python-2.7

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

LXML表的Pandas read_html等效项

嗨,我有大约10个表,我已经使用lxml进行了分类。

>>>import pandas as pd
>>>import lxml
>>>root = lxml.etree.HTML(htmlcontent)
>>>tables = root.findall('.//*[@id="info-container"]/table')
>>>readabletables = tables[::2]
>>>len(readabletables) = 5
>>>readabletables[0]
<Element table at 0x105241e60>
Run Code Online (Sandbox Code Playgroud)

我希望这5张表像一样被熊猫读取和解释pd.read_html

我将如何去做呢?

python lxml pandas

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