小编Era*_*she的帖子

python尝试除外

我的问题很简单.我有一个try/except代码.在尝试中我有一些http请求尝试,除了我有几种方法来处理我得到的异常.

现在我想在我的代码中添加一个时间参数.这意味着尝试只会持续'n'秒.否则接受它除外.

在自由语言中,它将显示为:

try for n seconds:
    doSomthing()
except (after n seconds):
    handleException()
Run Code Online (Sandbox Code Playgroud)

这是中码.不是功能.我必须抓住超时并处理它.我不能只是继续代码.

        while (recoveryTimes > 0):
            try (for 10 seconds):

                urllib2.urlopen(req)
                response = urllib2.urlopen(req)     
                the_page = response.read()
                recoveryTimes = 0

            except (urllib2.URLError, httplib.BadStatusLine) as e:
                print str(e.__unicode__())
                print sys.exc_info()[0]
                recoveryTimes -= 1

                if (recoveryTimes > 0):
                    print "Retrying request. Requests left %s" %recoveryTimes
                    continue
                else:
                    print "Giving up request, changing proxy."
                    setUrllib2Proxy()
                    break
            except (timedout, 10 seconds has passed)
                setUrllib2Proxy()
                break
Run Code Online (Sandbox Code Playgroud)

我需要的解决方案是try (for 10 seconds) …

python timer try-catch

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

python xgboost继续对现有模型进行培训

让我们说我构建了一个xgboost模型:

bst = xgb.train(param0, dtrain1, num_round, evals=[(dtrain, "training")])
Run Code Online (Sandbox Code Playgroud)

哪里:

  • param0是xgb的一组参数,
  • dtrain1是一个准备接受培训的DMatrix
  • num_round是轮数

然后,我将模型保存到磁盘:

bst.save_model("xgbmodel")
Run Code Online (Sandbox Code Playgroud)

稍后,我想重新加载我保存的模型并继续使用dtrain2 进行训练

有谁知道怎么做?

python xgboost

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

Pandas - 展平列,这是一个词典列表

假设我有以下DataFrame:

import pandas as pd
df = pd.DataFrame({'events': [ [{'event_text': 'hello1'}, {'event_text': 'hello2'}],
                                [{'event_text': 'whats up?'}],
                                [{'event_text': 'all good'}, {'event_text': 'bye'}] ]})

print(df)
                                              events
0  [{'event_text': 'hello1'}, {'event_text': 'hel...
1                      [{'event_text': 'whats up?'}]
2  [{'event_text': 'all good'}, {'event_text': 'b...
Run Code Online (Sandbox Code Playgroud)

我试图将所有文本提取到一个列中,如下所示:

0     hello1
1     hello2
2  whats up?
3   all good
4        bye
Run Code Online (Sandbox Code Playgroud)

我认为解决方案涉及json_normalize.我尝试过以下方法:

from pandas.io.json import json_normalize
df['events'].apply(json_normalize)
Run Code Online (Sandbox Code Playgroud)

但它产生了以下结果:

0      event_text
0     hello1
1     hello2
1                   event_text
0  whats up?
2      event_text
0   all good
1        bye
Run Code Online (Sandbox Code Playgroud)

任何Pythonic方式来处理这个?

python pandas

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

并行读取文件并参数化类参数

假设我有一个类,并且想从磁盘并行读取几个文件,并对类参数进行参数化。什么是最正确的方法(以及如何)?

  • 主线程应等待 load_data() 操作结束,然后再发生其他任何事情。

我考虑过线程,因为它只是 I/O 操作。

非并行实现示例(1-Threading):

import pandas as pd


class DataManager(object):
    def __init__(self):
        self.a = None
        self.b = None
        self.c = None
        self.d = None
        self.e = None
        self.f = None

    def load_data(self):
        self.a = pd.read_csv('a.csv')
        self.b = pd.read_csv('b.csv')
        self.c = pd.read_csv('c.csv')
        self.d = pd.read_csv('d.csv')
        self.e = pd.read_csv('e.csv')
        self.f = pd.read_csv('f.csv')

if __name__ == '__main__':
    dm = DataManager()
    dm.load_data()
    # Main thread is waiting for load_data to finish.
    print("finished loading data")
Run Code Online (Sandbox Code Playgroud)

python multithreading python-asyncio

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

熊猫 - 从可迭代的迭代中获取具有外观数量的假人

我有一个Pandas DataFrame()并且在其中,一些列Pythons' lists包含strings.我想将这些列转换为"二值化"字符串并计算其外观的假人.

作为一个简单的例子,我们可以看看以下内容

import pandas

df = pd.DataFrame({"Hey":[['t1', 't2', 't1', 't3', 't1', 't3'], ['t2', 't2', 't1']]})

df
Out[54]: 
                        Hey
0  [t1, t2, t1, t3, t1, t3]
1              [t2, t2, t1]
Run Code Online (Sandbox Code Playgroud)

我设法做了以下事情:

from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()

pd.DataFrame(mlb.fit_transform(df['Hey']), columns=list(map(lambda x: 'Hey_' + x, mlb.classes_)))
Out[55]: 
   Hey_t1  Hey_t2  Hey_t3
0       1       1       1
1       1       1       0
Run Code Online (Sandbox Code Playgroud)

这不包括他们的外表,但只有1次出现,0次缺席.我想要以下输出:

   Hey_t1  Hey_t2  Hey_t3
0       3       1       2
1       1       2       0
Run Code Online (Sandbox Code Playgroud)

这取决于他们的外表.

python pandas scikit-learn

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

如何在数据框中逐行计算部分列中大于 0 的数字并将其保存在列中

在此输入图像描述

我想计算所选特定列的值大于 0 行的列数,例如

星期一、星期二、星期三、星期四、星期五、星期六、星期日并将其保存在单独的列中

例如, in 的行数id_recipient 0是 2: (monday,saturday), forid_recipient 1也是 2:(monday, tuesday)等等。

python python-3.x

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

Python-如何使用常数e ^

我将如何在python中实现呢?

1 / (1 + e^-(-6.78+(0.04*age)))

我不确定e公式的一部分。图片如下:

img

python math

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