我想pandas
通过将函数应用于两个现有列来在数据框中创建新列.根据这个答案,当我只需要一列作为参数时,我就能够创建一个新列:
import pandas as pd
df = pd.DataFrame({"A": [10,20,30], "B": [20, 30, 10]})
def fx(x):
return x * x
print(df)
df['newcolumn'] = df.A.apply(fx)
print(df)
Run Code Online (Sandbox Code Playgroud)
但是,当函数需要多个参数时,我无法弄清楚如何做同样的事情.例如,如何通过将列A和列B传递给下面的函数来创建新列?
def fxy(x, y):
return x * y
Run Code Online (Sandbox Code Playgroud) 我试图确定Pandas列中是否有一个具有特定值的条目.我试着这样做if x in df['id']
.我认为这是有效的,除非我给它一个值,我知道它不在列中,43 in df['id']
它仍然返回True
.当我对仅包含与缺少的id匹配的条目的数据框进行子集化时df[df['id'] == 43]
,显然其中没有条目.如何确定Pandas数据框中的列是否包含特定值以及为什么我的当前方法不起作用?(仅供参考,当我在这个问题的答案中使用实现时,我遇到了同样的问题).
我有一个pandas
数据框,我希望能够从B列和C列中的值预测A列的值.这是一个玩具示例:
import pandas as pd
df = pd.DataFrame({"A": [10,20,30,40,50],
"B": [20, 30, 10, 40, 50],
"C": [32, 234, 23, 23, 42523]})
Run Code Online (Sandbox Code Playgroud)
理想情况下,我会有类似的东西ols(A ~ B + C, data = df)
,但当我从算法库中查看示例时,scikit-learn
它似乎将数据提供给模型,其中包含行而不是列.这将要求我将数据重新格式化为列表中的列表,这似乎首先打败了使用pandas的目的.在pandas数据框中对数据运行OLS回归(或更普遍的机器学习算法)的最pythonic方法是什么?
我最近安装了anaconda版本的python.现在,当我输入python
终端时,它会打开anonconda发行版而不是默认发行版.如何让它python
在linux(ubuntu 12.04)中使用命令的默认版本?
我正在寻找一个python包,它不仅可以在一台计算机中的不同内核之间进行多处理,而且还可以在多台机器上分布一个集群.分布式计算有许多不同的python包,但大多数似乎需要更改代码才能运行(例如,前缀表明对象在远程计算机上).具体来说,我希望尽可能接近多处理pool.map
功能.因此,例如,如果在一台机器上,脚本是:
from multiprocessing import Pool
pool = Pool(processes = 8)
resultlist = pool.map(function, arglist)
Run Code Online (Sandbox Code Playgroud)
然后,分布式集群的伪代码将是:
from distprocess import Connect, Pool, Cluster
pool1 = Pool(processes = 8)
c = Connect(ipaddress)
pool2 = c.Pool(processes = 4)
cluster = Cluster([pool1, pool2])
resultlist = cluster.map(function, arglist)
Run Code Online (Sandbox Code Playgroud) 我试图有效地从unicode字符串中删除标点符号.使用常规字符串,使用mystring.translate(None, string.punctuation)
显然是最快的方法.但是,此代码在Python 2.7中打破了unicode字符串.正如对这个答案的评论所解释的那样,翻译方法仍然可以实现,但必须用字典来实现.当我使用这个实现时,我发现translate的性能大大降低了.这是我的计时代码(主要从这个答案复制):
import re, string, timeit
import unicodedata
import sys
#String from this article www.wired.com/design/2013/12/find-the-best-of-reddit-with-this-interactive-map/
s = "For me, Reddit brings to mind Obi Wan’s enduring description of the Mos Eisley cantina: a wretched hive of scum and villainy. But, you know, one you still kinda want to hang out in occasionally. The thing is, though, Reddit isn’t some obscure dive bar in a remote corner of the universe—it’s …
Run Code Online (Sandbox Code Playgroud) 如何参考观察的行号?例如,如果您有一个data.frame
名为"数据"并且想要创建一个data$rownumber
等于每个观察的行号的变量,那么如果不使用循环,您将如何进行?
在ec2实例上部署Flask应用程序(换句话说,在任何计算机上运行脚本)和通过AWS Elastic Beanstalk部署Flask应用程序有什么区别?Flask 部署文档说:
虽然重量轻且易于使用,但Flask的内置服务器不适合生产,因为它不能很好地扩展,默认情况下一次只能提供一个请求.此处记录了可用于在生产中正确运行Flask的一些选项.
他们推荐的部署选项之一是AWS Elastic Beanstalk.然而,当我阅读亚马逊关于如何部署Flask应用程序的解释时,似乎他们正在使用与Flask内置的完全相同的服务器应用程序,例如它是单线程的,因此无法处理同时发出的请求.据我所知,Elastic Beanstalk允许您部署多个副本,但它似乎仍然使用内置的Flask服务器应用程序.我错过了什么?
我正在尝试学习如何pickle
在python中保存对象.但是,当我使用下面的示例代码时,我收到以下错误:io.UnsupportedOperation: read
追溯到favorite_color = pickle.load(f_myfile)
.我找不到这个特殊错误的好解释.我做错了什么,如何纠正?
import pickle # or import cPickle as pickle
# Create dictionary, list, etc.
favorite_color = { "lion": "yellow", "kitty": "red" }
# Write to file
f_myfile = open('myfile.pickle', 'wb')
pickle.dump(favorite_color, f_myfile)
f_myfile.close()
# Read from file
f_myfile = open('myfile.pickle', 'wb')
favorite_color = pickle.load(f_myfile) # variables come out in the order you put them in
f_myfile.close()
Run Code Online (Sandbox Code Playgroud) python ×9
pandas ×3
amazon-ec2 ×1
anaconda ×1
deployment ×1
flask ×1
linux ×1
pickle ×1
python-2.7 ×1
queue ×1
r ×1
regex ×1
regression ×1
row ×1
scikit-learn ×1
statsmodels ×1
unicode ×1