我有一个像这样的Pandas数据框:In[61]:df=DataFrame(np.random.rand(3,4),index=['art','mcf','mesa'],columns=['pol1','pol2','pol3','pol4'])In[62]:dfOut[62]:pol1pol2pol3pol4art0.6615920.4792020.7004510.345085mcf0.2355170.6659810.7787740.610344mesa0.8383960.0356480.4240470.866920我想生成一行,其中包含基准中策略的平均值,然后绘制它。目前,我这样做
我在用与DataFrame相同的方式屏蔽面板时遇到了一些问题。我想做的事情感觉很简单,但我还没有找到查看文档和在线论坛的方法。我在下面有一个简单的例子:importpandasimportnumpyasnpimportdatetimestart_date=datetime.datetime(2009,3,1,6,29,59)r=pandas.date_range(start_date,periods=12)cols_1=['AAPL','AAPL','GOOG','GOOG','GS','GS']cols_2=['close','rate','close','rate','close'
我是pandas的新手,正在尝试Pandas0.10.1版的Pandas10分钟教程。但是,当我执行以下操作时,出现如下所示的错误。printdf工作正常。为什么.loc不起作用?代码importnumpyasnpimportpandasaspddf=pd.DataFrame(np.random.randn(6,4),index=pd.date_range('20130101',periods=6),columns=['A','B','C','D'])df.loc[:,['A','B']]错误:AttributeErrorTraceback(mostrecentcalllast)in(
我有一个像这样的DataFrame:col1col210010000332004如果col2>0或0,我想添加一个为1的列,否则为0。如果我使用R,我会做类似的事情df1[,'col3']0,1,0)我如何在python/pandas中执行此操作? 最佳答案 您可以将bool系列df.col2>0转换为整数系列(True变为1和False变为0):df['col3']=(df.col2>0).astype('int')(要创建一个新列,您只需为其命名并将其分配给与您的DataFrame长度相同的系列、数组或列表。)这产生col3为:
我有一个以零星日期作为索引的数据框,列='id'和'num'。我想pd.groupby'id'列,并将重新索引应用于数据框中的每个组。我的示例数据集如下所示:idnum2015-08-01132015-08-05152015-08-06142015-07-31212015-08-03222015-08-0623使用ffillpd.reindex后我的预期输出是:idnum2015-08-01132015-08-02132015-08-03132015-08-04132015-08-05152015-08-06142015-07-31212015-08-01212015-08-02212
假设我有一个这样的数据框:KnownvalueABCDEFGH17.34130000000033.453400000000我想做的是,当已知值在0-10之间时,A从0变为1。当已知值在10-20之间时,B从0变为1,依此类推。改完之后应该是这样的:KnownvalueABCDEFGH17.34130100000033.453400010000有人知道如何应用一种方法来改变它吗? 最佳答案 我首先将Knownvalue系列放入一个等于其截断值除以10的整数列表中(例如27.87//10=2)。这些桶表示所需列位置的整数。因为Known
我正在尝试使用pandas数据帧分析几周内测量“X”的平均每日波动,但时间戳/日期时间等被证明特别难以处理。花了好几个小时试图解决这个问题后,我的代码变得越来越困惑,我认为我离解决方案还差得很远,希望这里有人能指导我朝着正确的方向前进。我在不同的时间和不同的日子测量了X,将每天的结果保存到具有以下形式的数据框中:Timestamp(datetime64)X02015-10-0500:01:38112015-10-0506:03:39422015-10-0513:42:39332015-10-0522:15:392由于进行测量的时间每天都在变化,我决定使用分箱来组织数据,然后计算出每个分
我有将近3,000,000行的PandasDataFrame。其中一列称为TIMESTAMP,属于datetime64类型。时间戳格式如下:2015-03-3122:56:45.510我的目标是计算收集数据的天数。我最初的方法很简单:(df.TIMESTAMP.max()-df.TIMESTAMP.min()).days但是,我发现这可能并不总是正确的,因为不能保证每天都收集数据。相反,我尝试使用map和apply计算时间戳系列中的唯一天数,并且两者都需要相当长的时间来处理3,000,000行:%timeitlen(df['TIMESTAMP'].map(lambdat:t.date(
我试图找到不同列与pandas的最高相关性。我知道可以获得相关矩阵df.corr()我知道在那之后我可以获得最高的相关性df.sort()df.stack()df[-5:]问题是这些相关性还包含列本身的值(1)。如何删除这些包含与self相关的列?我知道我可以通过删除所有1值来删除它们,但我不想这样做,因为也可能存在实际的1相关性。 最佳答案 说你有corrs=df.corr()然后问题出在对角线元素IIUC上。您可以轻松地将它们设置为某个负值,例如-2(这必然低于所有相关性)np.fill_diagonal(corrs.value
我有一个简单的Pandas数据框。尝试从IPython的Windows10终端session进行绘图给了我这个:In[4]:df=pd.DataFrame({'Y':[1,3,5,7,9],'X':[0,2,4,6,8]})In[5]:dfOut[5]:XY001123245367489In[6]:df.plot(kind='line')Out[6]:In[7]:我看不到任何情节。我做错了什么吗? 最佳答案 我认为您可以尝试为笔记本添加%matplotlibinline或ipythonnotebook--matplotlibinli