草庐IT

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

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

python - Pandas to_csv(sys.stdout) 在我的环境下不起作用

我运行了以下简单脚本:importsysimportpandasaspddf=pd.DataFrame([[1,2,3],[4,5,6]])df.to_csv(sys.stdout)预期输出(作为标准输出),0,1,20,1,2,31,4,5,6但是,我在macOS10.12.6上的Python2.7.15下的程序在标准输出上没有输出。相反,它生成了一个名为的文件其中包含预期的输出。有趣的是,在相同的操作系统上,Python3.6.5可以毫无问题地将结果显示为标准输出,而virtualenvedPython3.6.5无法显示它(并生成了文件).有没有人找出造成这种结果的原因?Panda

python - 在 Pandas 中有效地聚合重新采样的日期时间集合

给定以下数据集作为pandas数据框df:index(asDateTimeobject)|Name|Amount|IncomeOutcome---------------------------------------------------------------2019-01-28|Customer1|200.0|Income2019-01-31|Customer1|200.0|Income2019-01-31|Customer2|100.0|Income2019-01-28|Customer2|-100.0|Outcome2019-01-31|Customer2|-100.0|O

python - 我可以将 Python Pandas 数据框导出到 MS SQL 吗?

我正在使用pymssql和Pandassql包将数据从SQL加载到带有frame_query的Pandasdataframe中。我想使用write_frame将其发送回SQL数据库,但我找不到太多关于此的文档。特别是有一个参数flavor='sqlite'。这是否意味着到目前为止Pandas只能导出到SQLite?我的公司使用的是MSSQLServer2008,所以我需要导出到它。 最佳答案 不幸的是,是的。目前sqlite是write_frame支持的唯一“风格”。参见https://github.com/pydata/panda

python - Pandas 绘图功能忽略时间序列的时区

当使用pandas的内置plot函数绘制时间序列时,它似乎忽略了我的索引的时区:它始终使用UTC时间作为x轴。一个例子:importnumpyasnpimportmatplotlib.pyplotaspltfrompandasimportrolling_mean,DataFrame,date_rangerng=date_range('1/1/2011',periods=200,freq='S',tz="UTC")data=DataFrame(np.random.randn(len(rng),3),index=rng,columns=['A','B','C'])data_cet=data

python - 使用 pandas 绘制带有误差条的条形图

我正在尝试从这样的DataFrame生成条形图:PrePostMeasure10.41.9这些值是我从别处计算的中值,我还有它们的方差和标准差(还有标准误差)。我想将结果绘制为带有适当误差条的条形图,但为yerr指定多个错误值会产生异常:#DataisaDataFrameinstancefig=data.plot(kind="bar",yerr=[0.1,0.3])[...]ValueError:Insafezip,len(args[0])=1butlen(args[1])=2如果我指定单个值(不正确),一切都很好。我如何才能真正为每列提供正确的错误栏? 最

python pandas csv导出

我在将数据框导出到CSV文件时遇到问题。数据类型是String和Float64值,如下所示:In[19]:segmenti_t0Out[19]:SEGM1SEGM2ADP.S.8.3SCREMATO0.6CRESTD1.2FUNINTERO0.0P.S.2.0SCREMATO0.0NORMINTERO13.1P.S.69.5SCREMATO5.2Name:Quotavolume_t0我尝试使用此命令导出此数据框:IN[20]:segmenti_t0.to_csv('C:Users\MarioRossi\prova.csv',sep=";")当我尝试使用Excel打开它或尝试使用格式参数

python - Pandas 按索引删除列

假设我有一个像这样的DataFrame:>>>df=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=['a','b','b'])>>>dfabb012314562789我想删除第二个'b'列。如果我只使用del语句,它会同时删除'b'列:>>>deldf['b']>>>dfa011427我可以使用.iloc[]按索引选择列并重新分配DataFrame,但是我怎样才能只删除第二个'b'列,例如按索引? 最佳答案 df=df.drop(['b'],axis=1).join(df['b'].i

python - 使用 Pandas 拆分数据

我有一些从“长”到“宽”的数据。我使用unstack使数据变宽没有问题,但后来我得到了一个看起来像我无法摆脱的索引。这是一个虚拟示例:##setupsomedummydataimportpandasaspdd={'state':['a','b','a','b','a','b','a','b'],'year':[1,1,1,1,2,2,2,2],'description':['thing1','thing1','thing1','thing2','thing2','thing2','thing1','thing2'],'value':[1.,2.,3.,4.,1.,2.,3.,4.]}d

python pandas 创建数据框并强制使用多种列类型

我能够通过以下方式创建数据框并强制使用一种数据类型importpandasaspdtest=pd.DataFrame({'a':[1,2,3],'b':[1.1,2.1,3.1]},dtype=int)但我想为每一列指定类型。我怎样才能做到这一点?我尝试了以下不起作用,因为生成的数据类型是对象并且b列未转换为整数。test=pd.DataFrame({'a':[1,2,3],'b':[1.1,2.1,3.1]},dtype=[('a',int),('b',int)])Jeff帮助处理了上述案例。但是当我尝试创建一个空数据框并且我希望能够指定列类型时,我发现了另一个问题。对于跨列的单一类