小编Chr*_*ong的帖子

Python 3x的最佳机器学习包?

我很沮丧地看到scikit-learn不支持Python 3 ...是否有人可以为Python 3推荐的类似软件包?

python machine-learning python-3.x scikit-learn

19
推荐指数
2
解决办法
3292
查看次数

只在SQLite中插入唯一的行(python)

我正在使用cursor.executemany从CSV文件中将批量行插入到SQLite表中,其中一些表预计会基于主键字段重复.当我执行命令时,我可以预测得到完整性错误,并且没有插入任何内容.

如何选择性地仅插入非重复行而不必提前手动过滤它们?我知道在纯Python中你可以简单地创建一个错误异常并跳过重复的行 - 我可以在这个用例中实现类似的东西吗?

python sqlite

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

Pandas合并列,但不是"关键"列

这似乎是一个愚蠢的问题,但这已经困扰了我一段时间.

DF1:

imp_type    value
1           abc
2           def
3           ghi
Run Code Online (Sandbox Code Playgroud)

DF2:

id          value2
1           123
2           345
3           567
Run Code Online (Sandbox Code Playgroud)

Merginge 2 df:

df1.merge(df2, left_on='imp_type',right_on='id')
Run Code Online (Sandbox Code Playgroud)

收益率:

imp_type    value    id    value2
1           abc      1     123
2           def      2     345
3           ghi      3     567
Run Code Online (Sandbox Code Playgroud)

然后我需要删除id列,因为它基本上是imp_type列的副本.为什么默认情况下合并会在两个数据帧之间拉入连接键?如果你不想拉入连接键,我认为至少应该设置为False的参数.有没有这样的东西或者我做错了什么?

python pandas

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

设置Pydev交互式控制台的默认目录?

交互式控制台(也称为PyDev控制台),我用它来运行带有Control + Alt + Enter负载的脚本C:\Program Files (x86)\eclipse作为默认目录.如何将其加载到脚本或项目所在的默认工作目录中?

我现在一直在研究这个问题,似乎没什么用.看起来其他人一直有同样的问题而没有答案:

活动编辑器的pydev控制台路径

https://superuser.com/questions/486759/how-can-i-select-a-default-interactive-console-in-pydev

我也尝试在这里找到一个自定义启动脚本无济于事.我还按照此处的建议将我的工作目录添加到PYTHONPATH .

python eclipse pydev

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

根据最近的日期,Pandas Aggregate/Group

我有一个DataFrame如下,其中Id是一个字符串,Date是一个日期时间:

Id    Date
1     3-1-2012
1     4-8-2013
2     1-17-2013
2     5-4-2013
2     10-30-2012
3     1-3-2013
Run Code Online (Sandbox Code Playgroud)

我想整合表格,为每个具有最新日期的Id显示一行.
有关如何做到这一点的任何想法?

python-2.7 pandas

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

检查 Pandas 列是否包含来自另一列的值

如果df['col']='a','b','c'df2['col']='a123','b456','d789'我如何创建df2['is_contained']='a','b','no_match',如果从值,其中df['col']来自值范围内被发现df2['col']df['col']返回值,如果没有发现匹配,“NO_MATCH”返回?此外,我不希望有多个匹配项,但在不太可能的情况下,我想返回一个像“多个匹配项”这样的字符串。

python pandas

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

从现有模板创建MTurk HIT

我正在使用Python AWS包boto v2.7与Mturk API进行交互,以创建和管理HIT等.

在尝试使用现有模板创建HIT时,我遇到了困难.亚马逊有关该主题的文档如下:http://docs.aws.amazon.com/AWSMechTurk/2012-03-25/AWSMturkAPI/ApiReference_CreateHITOperation.html

我的代码是:

from boto.mturk.connection import MTurkConnection

mtc = MTurkConnection(aws_access_key_id=ACCESS_ID,
                             aws_secret_access_key=SECRET_KEY,
                             host=HOST)

mtc.create_hit(hit_layout=HIT_LAYOUT_ID)
Run Code Online (Sandbox Code Playgroud)

错误是:

MTurkRequestError: MTurkRequestError: 200 OK
<?xml version="1.0"?>
<CreateHITResponse><OperationRequest><RequestId>986926dd-0263-4aca-970c-139b7ed4a0e8</RequestId></OperationRequest><HIT><Request><IsValid>False</IsValid><Errors><Error><Code>AWS.MechanicalTurk.InvalidParameterValue</Code><Message>There was an error parsing the request (1359492767224 s)</Message></Error></Errors></Request></HIT></CreateHITResponse>
Run Code Online (Sandbox Code Playgroud)

看起来MTurk API需要一个命中布局参数,如下所示:http://docs.aws.amazon.com/AWSMechTurk/2012-03-25/AWSMturkAPI/ApiReference_HITLayoutArticle.html

虽然我的原始模板确实使用了占位符值,但为了简单起见,我删除了它们,并试图让代码正常工作.在这种情况下,我认为唯一需要的参数是hit_layout?

这是对boto的api的限制还是我在这里遗漏了什么?

UPDATE

我尝试使用评论中提到的mturkcore模块,结果如下.

码:

import mturkcore

login_dict = {'use_sandbox':True,
              'stdout_log':False,
              'AWS_ACCESS_KEY_ID':'ACCESS_ID',
              'AWS_SECRET_ACCESS_KEY':'PASSWORD'}

mtc = mturkcore.MechanicalTurk(login_dict)

request_params = {"Title":"Test Layout",
                    "Description":"Test Description",
                    "HITLayoutId":"2QNNJKM05BMJLZIA6G7TS9RA7TECHE",
                    "Reward":0.05,
                    "LifetimeInSeconds":6000,
                    "AssignmentDurationInSeconds":600    
                    }

mtc.create_request("CreateHIT", request_params)
Run Code Online (Sandbox Code Playgroud)

这会从suds产生错误信息:

TypeNotFound: Type not found: 'HITLayoutId'
Run Code Online (Sandbox Code Playgroud)

我再次按照这里的说明操作:http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_CreateHITOperation.html这看起来相当简单.

解决方案 …

mechanicalturk boto amazon-web-services python-2.7

6
推荐指数
0
解决办法
1372
查看次数

返回每组的前N行(Vertica/vsql)

熟悉的问题,但与Vertica.我想基于每个tag_id的sum(imps)返回前5个geo_country行.这是我开始的查询:

SELECT tag_id,
       geo_country,
       SUM(imps) AS imps,
       RANK() OVER (PARTITION BY tag_id ORDER BY SUM(imps) DESC) AS rank
FROM table1
WHERE tag_id IN (2013150,1981153)
AND ymd > CURRENT_DATE - 3
GROUP BY 1,
         2 LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

这实际上只返回WHERE子句(2013150)中第一个标记的行.我知道另一个标签的sum(imps)值足够高,应该在结果中包含它.

另外,我如何实现前N部分?我尝试在OVER函数中添加LIMIT子句,但它看起来不像是一个可接受的参数.

sql vertica vsql

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

有条件地根据另一列中的值替换值

我有一个非常大的数据帧(~1.7MM行×6列).相关数据的简化示例如下:

City        Borough

Brooklyn    Brooklyn
Astoria     Queens
Astoria     Unspecified
Ridgewood   Unspecified
Ridgewood   Queens
Run Code Online (Sandbox Code Playgroud)

所以我试图根据City列中的信息填充'Unspecified'值.例如,City Ridgewood在一个实例中位于Unspecified Borough,但正确地将Borough列为数据集中其他地方的Queens.

我已经探索过Panda的补充,但它似乎不符合我的需求.我也考虑过np.where方法,但我不确定它在这种情况下是如何工作的.我对Pandas很新,但是地图/应用功能可能是我需要的吗?这可能可以通过一千种不同的方式实现,但是在寻找不会因数据大小而爬行的东西.

编辑:我能够创建一个字典,其中包含城市和行政区之间发生率最高的"对",其代码如下:

specified = data[['Borough','City']][data['Borough']!= 'Unspecified']
paired = specified.Borough.groupby(specified.City).max()
paired = paired.to_dict()
Run Code Online (Sandbox Code Playgroud)

配对的词典以城市为关键,自治市镇为价值.现在最后一步是将其应用/映射回行政区列......我该怎么做?

python pandas

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

重新排序熊猫数据透视表中的列

我有一个使用 pivot_table 方法创建的 Pandas 数据框。它的结构如下:

import numpy as np
import pandas 

datadict = {
 ('Imps', '10day avg'): {'All': '17,617,872', 'Crossnet': np.nan, 'N/A': '17,617,872'},
 ('Imps', '30day avg'): {'All': '17,302,111', 'Crossnet': '110','N/A': '18,212,742'},
 ('Imps', '3day avg'): {'All': '8,029,438', 'Crossnet': '116', 'N/A': '8,430,904'},
 ('Imps', 'All'): {'All': '14,156,666', 'Crossnet': '113', 'N/A': '14,644,823'},
 ('Spend', '10day avg'): {'All': '$439', 'Crossnet': np.nan, 'N/A': '$439'},
 ('Spend', '30day avg'): {'All': '$468', 'Crossnet': '$0', 'N/A': '$492'},
 ('Spend', '3day avg'): {'All': '$209', 'Crossnet': '$0', 'N/A': '$219'},
 ('Spend', 'All'): {'All': '$368', 'Crossnet': …
Run Code Online (Sandbox Code Playgroud)

python pandas

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