小编Jer*_*emy的帖子

使用sklearn和pandas在一个模型中组合单词和其他功能

我试图根据帖子的文本和其他功能(一天中的时间,帖子的长度等)来模拟帖子收到的分数.

我想知道如何最好地将这些不同类型的功能组合到一个模型中.现在,我有类似以下内容(从这里这里被盗).

import pandas as pd
...

def features(p):
    terms = vectorizer(p[0])
    d = {'feature_1': p[1], 'feature_2': p[2]}
    for t in terms:
        d[t] = d.get(t, 0) + 1
    return d

posts = pd.read_csv('path/to/csv')

# Create vectorizer for function to use
vectorizer = CountVectorizer(binary=True, ngram_range=(1, 2)).build_tokenizer()
y = posts["score"].values.astype(np.float32) 
vect = DictVectorizer()

# This is the part I want to fix
temp = zip(list(posts.message), list(posts.feature_1), list(posts.feature_2))
tokenized = map(lambda x: features(x), temp)
X = vect.fit_transform(tokenized)
Run Code Online (Sandbox Code Playgroud)

从pandas数据框中提取我想要的所有功能似乎非常愚蠢,只是将它们全部压缩在一起.有没有更好的方法来做这一步?

CSV看起来如下所示: …

python nlp machine-learning pandas scikit-learn

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

无法从Chrome扩展程序连接到localhost

我正在制作跟踪时间的Chrome扩展程序,并使用Google App Engine作为后端.

为了测试,我正在尝试将本地版本的扩展连接到App Engine应用程序的本地版本.当我尝试发送POST请求时,我得到:

XMLHttpRequest cannot load http://localhost:8080/report. Origin chrome-extension://mbndmimplohfkkcincjodnfpaapbbmei is not allowed by Access-Control-Allow-Origin.

但是当我更改URL以便它发布到appspot.com URL时它可以工作.

什么是Access-Control-Allow-Origin,为什么阻止我从localhost获取结果?

google-app-engine localhost google-chrome-extension

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

在熊猫中获取日期分位数

我有一些看起来像这样的数据:

user  timestamp  value1 
   a 2007-01-01       7 
   a 2007-02-02       8 
   a 2007-02-03       9 
   b 2007-02-04       1 
   a 2007-02-05       2 
   b 2007-02-06       3 
   b 2007-02-07       4 
   a 2007-02-08       5 
...
Run Code Online (Sandbox Code Playgroud)

每个用户具有不同数量的条目.

我的目标是了解这些条目的生成速度,并输出如下内容:

     last_entry median_entry first_entry
user                                    
a    2007-02-08   2007-02-03  2007-01-01
b    2007-02-07   2007-02-06  2007-02-04
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的代码如下:

gb = df.groupby('user')
time_median = gb['timestamp'].median()
Run Code Online (Sandbox Code Playgroud)

但这给了我DataError: No numeric types to aggregate,大概是因为日期不是数字.

我想可以将日期转换为时间戳,并找到它们的中位数,然后将它们转回date_time对象.这是最好的方式吗?

python numpy pandas

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

最好将项目添加到集合中,还是将最终列表转换为集合?

我有一些看起来像这样的数据:

ID1 ID2 ID3  
ID1 ID4 ID5  
ID3 ID5 ID7 ID6  
...  
...  
Run Code Online (Sandbox Code Playgroud)

每行是一个组.

我的目标是为每个ID创建一个字典,然后是一组与其共享> = 1组的其他ID.

例如,此数据将返回{ID1:[ID2,ID3,ID4,ID5],ID2:[ID1,ID3] ...}

我可以想到3个选项,我想知道哪个(通常)最好:

  1. 在添加ID之前检查ID是否已在列表中
  2. 创建集而不是列表,并将每个ID添加到集合中
  3. 将所有ID添加到列表中,然后将所有列表转换为最后的集.

python loops set

9
推荐指数
2
解决办法
1383
查看次数

如何在Jupyter(R)中渲染LaTeX/HTML?

我刚开始使用Jupyter和R,我想知道是否有一种很好的方式来显示HTML或LaTeX输出.

这是我希望工作的一些示例代码:

library(xtable)
x <- runif(500, 1, 50)
y <- x + runif(500, -5, 5)
model <- lm(y~x)
print(xtable(model), type = 'html')
Run Code Online (Sandbox Code Playgroud)

它不是呈现HTML,而是将其显示为纯文本.有没有办法改变这种行为?

html xml r jupyter

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

将子进程的输出转换为 csv.reader 对象

有没有办法获取子进程的输出并将其转换为可迭代的 csv.reader 或 csv.DictReader 对象?这是我一直在尝试的代码:

p2 = subprocess.Popen("sort command...", stdout=subprocess.PIPE)
output = p2.communicate()[0]
edits = csv.reader(output, delimiter="\t")
Run Code Online (Sandbox Code Playgroud)

基本上,我正在对一个大型 CSV 文件进行排序,然后我想将其作为 csv.reader 对象放入 Python 中。

我收到的错误是

错误:迭代器应该返回字符串,而不是整数(您是否以文本模式打开文件?)

有没有办法将此字节流视为 csv.reader 对象,或者我是否以错误的方式思考问题?

csv subprocess python-3.x

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

virtualenv在Ubuntu升级后给出错误

我已成功使用python虚拟环境(virtualenv)一段时间了.我刚刚升级到新版本的Ubuntu,它搞砸了我的环境.我的印象是,virtualenv是独立的,但显然我错了.:)

这是错误:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

我在想,也许这与Ubuntu从Python 3.4改为3.5的事实有关,所以我试着改变我的环境使用的版本

 virtualenv --python=/usr/bin/python3.5 py3default
Run Code Online (Sandbox Code Playgroud)

但它不会为我更新Python.

注意:看起来是重复的,但还没有解决方案.

python ubuntu virtualenv

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

在函数中使用groupby组名

我有类似的数据:

df = pd.DataFrame({'user': np.random.choice(['a', 'b','c'], size=100, replace=True),
                   'value1': np.random.randint(10, size=100),
                   'value2': np.random.randint(20, size=100)})
Run Code Online (Sandbox Code Playgroud)

我用它来产生一些结果,例如,

grouped = df.groupby('user')
results = pd.DataFrame()
results['value2_sum'] = grouped['value2'].sum()
Run Code Online (Sandbox Code Playgroud)

对于此结果数据框的其中一列,我想将用户名传递给另一个函数,该函数使用数据框外的数据.

我尝试过类似的东西:

results['user_result'] = grouped.apply(lambda x: my_func(x.index))
Run Code Online (Sandbox Code Playgroud)

但无法找出有效的语法.

python pandas

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

为什么lftp mirror命令chmod文件

我对lftp很新,所以请原谅我的无知.

我只是跑我lftp的脚本,它主要由这样的线的试运行:镜-RV -x正则表达式--only存在--only-新--dry运行/本地/根/ DIR /远程/ DIR

当它打印它要做的事情时,它想要chmod一堆文件 - 我从svn抓取的文件,从未修改过,哪些应该与服务器上的文件相同.

我的本地计算机是Ubuntu,而远程计算机是Windows服务器.我有几个问题:

  1. 为什么要这样做呢?它是否尝试匹配本地与远程的文件权限?
  2. 尝试chmod文件时会发生什么?据我所知,Windows不支持chmod - 它会不会优雅地失败并保留文件?

非常感谢!

ftp chmod lftp

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

如何在Google App Engine上的页面之间共享数据

我是一名新手程序员,在我的第一个网络应用程序(使用App Engine)上工作,所以请原谅我的无知.

我一直在修改Google提供的Hello World程序,试图让它做我想做的事情.

在他们的演示(http://code.google.com/appengine/docs/python/gettingstarted/templates.html)中,他们有2个类创建2个页面 - 一个是index.html,另一个是处理表单,将表单数据放入DB,然后重定向回主页面,主页面从DB加载信息.

我想在主页面上有一个表单,用户提交一个字符串,执行各种操作,输出显示在主页面上.

问题是用户提交的表单中的数据转到表单处理程序页面,我无法弄清楚如何将输出返回到主页面.

google-app-engine web-applications

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