草庐IT

apply_async

全部标签

python - 有没有更好/更有效的方法来做到这一点(矢量化)? Pandas apply 性能非常慢

所以在R中,我会为此使用优化的应用函数,但我现在读到Panda的应用函数是一个抽象循环,甚至可能比一个循环更慢,这在性能上有所体现。在我的机器上,处理60k行需要30分钟。所以本质上,我希望根据具有不同组的数据集来计算移动平均值,我需要在这些数据集上计算移动平均值。有很多这样的团体。所以我基本上首先必须在行/单元格的基础上对数据集进行子集化,然后才计算移动平均值。所以我正在尝试为此提出一个矢量化解决方案,但似乎无法弄清楚您将如何在矢量化方法中对数据框进行子集化。我目前的解决方案使用了一个非常容易理解和维护的应用函数:df['SMA']=df.apply(SMA,axis=1)defSM

python - 如何从 GroupBy.apply() 中删除多索引?

基于thisquestion.df=pandas.DataFrame([[2001,"Jack",77],[2005,"Jack",44],[2001,"Jill",93]],columns=['Year','Name','Value'])YearNameValue02001Jack7712005Jack4422001Jill93ForeachuniqueName,IwouldliketokeeptherowwiththelargestYearvalue.IntheaboveexampleIwouldliketogetthetableYearNameValue02005Jack4412

Python async/await 下载 url 列表

我正在尝试从FTP服务器下载30,000多个文件,经过谷歌搜索后,使用异步IO似乎是个好主意。但是,下面的代码无法下载任何文件并返回超时错误。我真的很感激任何帮助!谢谢!classpdb:def__init__(self):self.ids=[]self.dl_id=[]self.err_id=[]asyncdefdownload_file(self,session,url):try:withasync_timeout.timeout(10):asyncwithsession.get(url)asremotefile:ifremotefile.status==200:data=awai

python - Pandas.groupby.apply() 内存泄漏?

我目前正在将Pandas用于一个csv源文件约为600mb的项目。在分析过程中,我正在将csv读入数据框,在某些列上分组并将一个简单的函数应用于分组的数据框。我注意到我在这个过程中进入了交换内存,所以进行了一个基本测试:我首先在shell中创建了一个相当大的数据框:importpandasaspdimportnumpyasnpdf=pd.DataFrame(np.random.randn(3000000,3),index=range(3000000),columns=['a','b','c'])我定义了一个名为do_nothing()的毫无意义的函数:defdo_nothing(gro

python - 为什么 np.where 比 pd.apply 快

示例代码在这里importpandasaspdimportnumpyasnpdf=pd.DataFrame({'Customer':['Bob','Ken','Steve','Joe'],'Spending':[130,22,313,46]})#[400000rowsx4columns]df=pd.concat([df]*100000).reset_index(drop=True)In[129]:%timeitdf['Grade']=np.where(df['Spending']>100,'A','B')10loops,bestof3:21.6msperloopIn[130]:%tim

python Pandas : applying different aggregate functions to different columns

我试图理解这个简单的SQL语句的等价物是什么:selectmykey,sum(Field1)assum_of_field1,avg(Field1)asavg_field1,min(field2)asmin_field2fromdfgroupbymykey我知道我可以将字典传递给agg()函数:f={'Field1':'sum','Field2':['max','mean'],'Field3':['min','mean','count'],'Field4':'count'}grouped=df.groupby('mykey').agg(f)但是,生成的列名称似乎由pandas自动选择:(

Python 和函数式编程 : is there an apply() function?

Scala有apply()功能。我是Python的新手,我想知道我应该如何编写以下单行代码:(part_a,part_b)=(lambdax:re.search(r"(\w+)_(\d+)",x).groups())(input_string)我会觉得像这样的东西会更好:(part_a,part_b)=input_string.apply(lambdax:re.search(r"(\w+)_(\d+)",x).groups())从FF的角度来看,我错了吗?Python中有这样的构造吗?编辑:我知道摘得不好的片段。 最佳答案 写Has

python - 为什么 df.apply(tuple) 有效但 df.apply(list) 无效?

这是一个数据框:ABC062-51252210313-5284362我可以使用df.apply从原始df中检索一个基本上是列元组的列:out=df.apply(tuple,1)print(out)0(6,2,-5)1(2,5,2)2(10,3,1)3(-5,2,8)4(3,6,2)dtype:object但是如果我想要一个值列表而不是它们的元组,我就做不到,因为它没有给我预期的结果:out=df.apply(list,1)print(out)ABC062-51252210313-5284362相反,我需要做的是:out=pd.Series(df.values.tolist())prin

python - Pandas 函数 : DataFrame. apply() 运行顶行两次

这个问题在这里已经有了答案:Whydoespandasapplycalculatetwice(3个答案)关闭2年前。我有两个版本的函数使用PandasforPython2.7逐行通过inputs.csv。第一个版本在单列上使用Series.apply(),并按预期遍历每一行。第二个版本在多列上使用了DataFrame.apply(),并且出于某种原因它读取了顶行两次。然后它继续执行其余的行而不重复。知道为什么后者会读取顶行两次吗?版本#1–Series.apply()(读取顶行一次)importpandasaspddf=pd.read_csv(inputs.csv,delimiter=

python - 将 yield 与多个 ndb.get_multi_async 一起使用

我正在尝试提高我当前从应用引擎数据存储区查询的效率。目前,我使用的是同步方法:classHospital(ndb.Model):name=ndb.StringProperty()buildings=ndb.KeyProperty(kind=Building,repeated=True)classBuilding(ndb.Model):name=ndb.StringProperty()rooms=ndb.KeyProperty(kind=Room,repeated=True)classRoom(ndb.Model):name=ndb.StringProperty()beds=ndb.Ke