草庐IT

apply_along_axis

全部标签

python - 使用映射器时,pandas DataFrame.rename 意外关键字参数 "axis"

在pandasdocs之后我尝试了以下(文档中的逐字记录):df=pd.DataFrame({"A":[1,2,3],"B":[4,5,6]})df.rename(str.lower,axis='columns')还是报错TypeError:rename()gotanunexpectedkeywordargument"axis"我也试过df.rename(mapper=str.lower,axis='columns')然后我得到:TypeError:rename()gotanunexpectedkeywordargument"mapper"我看的是旧版本的文档吗?

python - 可见弃用警告 : boolean index did not match indexed array along dimension 1; dimension is 2 but corresponding boolean dimension is 1

Macports更新后,我认为更新了numpy,我收到警告:VisibleDeprecationWarning:booleanindexdidnotmatchindexedarrayalongdimension1;dimensionis2butcorrespondingbooleandimensionis1inliers=n.size(pixels[distances以前没有提出过。相关代码为:#Computedistanceofallnon-zeropointsfromthecircumferencedistances=guess_feature.points_distance(pi

python - 'index 0 is out of bounds for axis 0 with size 0' 是什么意思?

我是python和numpy的新手。我运行了我编写的代码,我收到了这条消息:'索引0超出了大小为0的轴0的范围'没有上下文,我只想弄清楚这是什么意思。问这个问题可能很愚蠢,但是轴0和大小0是什么意思?索引0表示数组中的第一个值..但我无法弄清楚轴0和大小0是什么意思。“数据”是一个文本文件,在两列中包含大量数字。x=np.linspace(1735.0,1775.0,100)column1=(data[0,0:-1]+data[0,1:])/2.0column2=data[1,1:]x_column1=np.zeros(x.size+2)x_column1[1:-1]=xx_colum

python - 对于 matplotlib 子图,Axes.invert_axis() 不适用于 sharey=True

我正在尝试制作4个具有倒置y轴的子图(2x2),同时在子图之间共享y轴。这是我得到的:importmatplotlib.pyplotaspltimportnumpyasnpfig,AX=plt.subplots(2,2,sharex=True,sharey=True)foraxinAX.flatten():ax.invert_yaxis()ax.plot(range(10),np.random.random(10))当sharey=True时,ax.invert_axis()似乎被忽略了。如果我设置sharey=False我会在所有子图中得到一个倒置的y轴,但显然y轴不再在子图中共享。

python - 当系列包含集合时,为什么我的 pandas rolling().apply() 不起作用?

我有一个pandas系列,其中每个单元格都是一个元组。我正在尝试对该系列执行rolling().apply()操作,而我尝试应用的函数从未被调用过。这是一个愚蠢的例子,说明了我在说什么:>>>importpandasaspd>>>pd.__version__u'0.18.0'>>>die=lambdax:0/0>>>s=pd.Series(zip(range(5),range(5)))>>>s0(0,0)1(1,1)2(2,2)3(3,3)4(4,4)dtype:object一个简单的apply按预期工作,因为函数被调用:>>>s.apply(die)[...]ZeroDivision

python - Pandas groupby 和 rolling_apply 忽略 NaN

我有一个pandas数据框,我想计算列的滚动平均值(在groupby子句之后)。但是,我想排除NaN。例如,如果groupby返回[2,NaN,1],则结果应为1.5,而当前它返回NaN。我尝试了以下方法,但似乎不起作用:df.groupby(by=['var1'])['value'].apply(pd.rolling_apply,3,lambdax:np.mean([iforiinxifiisnotnp.nanandi!='NaN']))如果我什至尝试这样做:df.groupby(by=['var1'])['value'].apply(pd.rolling_apply,3,lambd

python - 如何使用天数作为 pandas rolling_apply 函数的窗口

我有一个日期间隔不规则的Pandas数据框。有没有办法用7天作为移动窗口来计算medianabsolutedeviation,中位数等..?我觉得我可以以某种方式使用pandas.rolling_apply但它不会为window参数采用不规则间隔的日期。我找到了类似的帖子https://stackoverflow.com/a/30244019/3128336并且我正在尝试创建我的自定义函数,但仍然无法弄清楚..任何人都可以帮忙吗?importpandasaspdfromdatetimeimportdatetimeperson=['A','B','C','B','A','C','A','

python - 如何在不添加额外索引的情况下使用 Pandas groupby apply()

我经常想通过组合分组DataFrame的多个列来创建一个新的DataFrame。apply()函数允许我这样做,但它要求我创建一个不需要的索引:In[359]:df=pandas.DataFrame({'x':3*['a']+2*['b'],'y':np.random.normal(size=5),'z':np.random.normal(size=5)})In[360]:dfOut[360]:xyz0a0.201980-0.4703881a0.190846-2.0890322a-1.1310100.2278593b-0.263865-1.9065754b-1.335956-0.722

使用 rolling_apply 的 Python 自定义函数用于 pandas

我想使用pandas.rolling_apply函数在滚动窗口的基础上应用我自己的自定义函数。但是我的函数需要两个参数,并且还有两个输出。这可能吗?下面是一个最小的可重现示例...importpandasaspdimportnumpyasnpimportrandomtmp=pd.DataFrame(np.random.randn(2000,2)/10000,index=pd.date_range('2001-01-01',periods=2000),columns=['A','B'])defgm(df,p):v=(((df+1).cumprod())-1)*preturnv.iloc[

python - 如何将多个参数传递给 apply 函数

我有一个名为counting的方法,它有两个参数。我需要使用apply()方法调用此方法。但是,当我将这两个参数传递给apply方法时,出现以下错误:TypeError:counting()takesexactly2arguments(1given)我看到了以下帖子pythonpandas:applyafunctionwithargumentstoaseries.Update而且我不想使用functool.partial,因为我不想导入其他类来传递参数。defcounting(dic,strWord):ifstrWordindic:returndic[strWord]else:retu