草庐IT

python - Pandas 和 Rolling_Mean with Offset(平均每日交易量计算)

当我将股票数据从Yahoo提取到数据框中时,我希望能够计算5天的平均交易量,不包括当前日期。有没有办法使用带有偏移量的滚动均值?例如,5天表示不包括当前日期并基于前5天。当我运行下面的代码时r=DataReader("BBRY","yahoo",'2015-01-01','2015-01-31')r['ADV']=pd.rolling_mean(r['Volume'],window=5)它返回5天的交易量,包括当前日期,所以当您查看下面的内容时,1/8具有1/2、1/5、1/6、1/7和1/的平均交易量8.我希望1/9是第一个返回平均交易量的日期,它包含来自1/2、1/5、1/6、1/

python - 在 pandas 的 groupby 中排名

我有一个典型的“面板数据”(在计量经济学术语中,不是pandas面板对象)。数据框有一个Date列和一个ID列,以及包含特定值的其他列。对于每个日期,我需要根据V1对ID进行横截面排名,分成10个组(十分位数),并创建一个名为rank_col的新列(取值1到10)来确定排名。然后汇集所有rank1、rank2、...rank10跨时间获得一些统计数据,如平均值、标准差。这可以在SAS中通过以下代码轻松完成,它也说明了我的目的:procsortdata=df;byDate;procrankdata=dfout=df_rankedgroups=10;varV1;ranksrank_col;

python - Pandas :用下一个非 NaN/# 连续 NaN 填充 NaN

我正在寻找一个pandas系列并用下一个数值的平均值填充NaN,其中:average=nextnumericalvalue/(#consecutiveNaNs+1)到目前为止,这是我的代码,我只是不知道如何在NaN(以及下一个数值)之间划分filler列编号:importpandasaspddates=pd.date_range(start='1/1/2016',end='1/12/2016',freq='D')nums=[10,12,None,None,39,10,11,None,None,None,None,60]df=pd.DataFrame({'date':dates,'num

day01-项目介绍&功能实现

项目介绍&功能实现1.项目介绍&环境搭建一个以社交平台为核心的轻电商项目,功能如下:短信登录、商户查询缓存、优惠券秒杀、达人探店、好友关注、附近的商户、用户签到、UV统计1.1项目架构1.2项目环境搭建1.2.1后端项目搭建mysql的版本采用5.7及以上版本(1)首先创建数据库,需要创建的表有:tb_user:用户表tb_user_info:用户详情表tb_shop:商品信息表tb_shop_type:商品类型表tb_blog:用户日记表(达人探店日记)tb_follow:用户关注表tb_voucher:优惠券表tb_voucher_order:优惠券的订单表(2)导入项目依赖org.spr

python - 如何根据日期时间索引对 Pandas Dataframe 进行切片

这个问题困扰我很久了:给定一个简单的pandasDataFrame>>>dfTimestampCol12008-08-010.0013732008-09-010.0401922008-10-010.0277942008-11-010.0125902008-12-010.0263942009-01-010.0085642009-02-010.0077142009-03-01-0.0197272009-04-010.0088882009-05-010.0398012009-06-010.0100422009-07-010.0209712009-08-010.0119262009-09-01

python - 在 Pandas 聚合函数中创建多列

我想在像内置的ohlc方法一样对pandasDataFrame进行重采样时创建多个列。defmhl(data):returnpandas.Series([np.mean(data),np.max(data),np.min(data)],index=['mean','high','low'])ts.resample('30Min',how=mhl)死于Exception:Mustproduceaggregatedvalue有什么建议吗?谢谢! 最佳答案 您可以将函数字典传递给resample方法:In[35]:tsOut[35]:20

python - 如何在 Pandas 中绘制日期的核密度图?

我有一个pandas数据框,其中每个观察值都有一个日期(作为datetime[64]格式的条目列)。这些日期分布在大约5年的时间段内。我想绘制所有观测日期的核密度图,年份标记在x轴上。我已经弄清楚如何创建相对于某个引用日期的时间增量,然后创建每个观察与引用日期之间的小时数/天数/年数的密度图:df['relativeDate'].astype('timedelta64[D]').plot(kind='kde')但这并不是我想要的:如果我转换为年增量,则x轴是正确的,但我失去了年内变化。但是,如果我采用更小的时间单位(例如小时或天),则x轴标签更难解释。在Pandas中实现此功能的最简单

python cdist 错误 ValueError : XA must be a 2-dimensional array

这是我的代码的简化版本:`dist_array=ssd.cdist(test[y],training)`测试[y]打印出来的是[0.00000000e+001.79900000e+011.03800000e+011.22800000e+021.00100000e+031.18400000e-012.77600000e-013.00100000e-011.47100000e-012.41900000e-017.87100000e-021.09500000e+009.05300000e-018.58900000e+001.53400000e+026.39900000e-034.904000

python - TypeError : float() argument must be a string or a number, 不是 'Period'

我有一个包含如下列的pandas数据框:df.columns=pd.to_datetime(list(df))#list(df)=["2017-01","2016-01",...]然后我在数据集的每一行中执行了一个插值,因为我有一些我想摆脱的NaN。这是打印的结果:ORIGINAL2007-12-01NaN2008-12-01NaN2009-12-01NaN2010-12-01-0.352011-12-010.672012-12-01NaN2013-12-01NaN2014-12-011.032015-12-010.372016-12-01NaN2017-12-01NaNName:ro

python - DataFrame 按组计算每只股票的对数返回

例如,我创建了一个如下所示的数据框:datepricetickervolume02018-01-011.323AI200012018-01-021.525AI150022018-01-031.045AI50032018-01-012.110BOC320142018-01-022.150BOC520052018-01-032.810BOC198062018-01-015.199CAT200072018-01-024.980CAT45082018-01-034.990CAT3000所以有3只股票,跨越三天。我想计算2018-01-01和2018-01-03之间每只股票的每日对数yield。