我有一个数据框,我从一个csv文件加载它,然后通过set_index方法将索引设置为它的几列(通常是两列或三列)。这个想法是然后使用几个组合键访问数据框的部分,如下所示:df.set_index(['fileName','phrase'])df.ix['somePath','somePhrase']显然,只有当数据帧的MultiIndex被排序到足够的深度时,这种具有多个键的选择才有可能。在这种情况下,由于我提供了两个键,只有当数据帧MultiIndex被排序到至少2的深度时,.ix操作才不会失败。出于某种原因,当我如图所示设置索引时,对我来说似乎两层都已排序,调用df.index.l
基本上我想要像Dictionary这样的东西,但不是(正如我在其他问题中看到的)键在AND中,而是在OR中。为了更好地解释:我希望能够在字典中找到一个只提供一个键而不是两个键的元素。我还认为我们应该考虑线程安全和轻松扩展到Dictionary解决方案的能力... 最佳答案 我会用这两个字典实现一个数据结构Dictionary>dict1;Dictionary>dict2;这样一来,如果您获得了1个键,您将同时拥有值和另一个键,以便轻松删除和更新。 关于c#-如何实现多索引字典?,我们在S
我对下面的每个示例都有一个排序请求。我需要reset_index(),然后是sort(),然后是set_index(),还是有什么巧妙的方法可以做到这一点?l=[[1,'A',99],[1,'B',102],[1,'C',105],[1,'D',97],[2,'A',19],[2,'B',14],[2,'C',10],[2,'D',17]]df=pd.DataFrame(l,columns=['idx1','idx2','col1'])df.set_index(['idx1','idx2'],inplace=True)#assumedatahasbeenreceivedlikethis
我有下表:NSRCODEPBL_AWIAreaCMBONS44705.492941BTNN253854.591990FONG41625.590370FONS16814.159680Lake57124.819333River1603.906642SONS583958.444751STNN45603.837177clearcut106139.013930disturbed127719.865675lowland118795.578059upland2701289.270193LBHBFNN289207.169650BONS9140084.716743BTNI33713.160390BTNN
NIYEARMONTHdatetime200012000-01-01NaN2000-01-02NaN2000-01-03NaN2000-01-04NaN2000-01-05NaN在上面的数据框中,我有一个由列组成的多级索引:names=[u'YEAR',u'MONTH',u'datetime']如何恢复到以“datetime”为索引、以“YEAR”和“MONTH”为普通列的数据框? 最佳答案 通过level=[0,1]来重置这些级别:dist_df=dist_df.reset_index(level=[0,1])In[28]:df.
我有一个数据框,grouped,多索引列如下:importpandasaspdcodes=["one","two","three"];colours=["black","white"];textures=["soft","hard"];N=100#lengthofthedataframedf=pd.DataFrame({'id':range(1,N+1),'weeks_elapsed':[random.choice(range(1,25))foriinrange(1,N+1)],'code':[random.choice(codes)foriinrange(1,N+1)],'colou
我有一个看起来像这样的数据框df。日期和时间是2个多级索引observation1observation2dateTime2012-11-029:15:0079.3736682249:16:00130.8413164772012-11-039:15:0045.3128148359:16:00123.7769466239:17:00153.766466249:18:00463.2769466269:19:00663.1769346229:20:00763.773336212012-11-049:15:00115.4494371229:16:00123.7769465559:17:0015
在DataFrame上执行groupby.sum()后,我在尝试创建我想要的情节时遇到了一些麻烦。importpandasaspdimportnumpyasnpnp.random.seed(365)rows=100data={'Month':np.random.choice(['2014-01','2014-02','2014-03','2014-04'],size=rows),'Code':np.random.choice(['A','B','C'],size=rows),'ColA':np.random.randint(5,125,size=rows),'ColB':np.rand
我在pandasdf中有一个包含多索引列的数据集,我想按特定列中的值进行排序。我曾尝试使用sortindex和sortlevel,但无法获得我正在寻找的结果。我的数据集如下所示:Group1Group2ABCABC110325725691003702035我想按第1组中的C列按降序对所有数据和索引进行排序,因此我的结果如下所示:Group1Group2ABCABC256910011032573702035是否可以使用我的数据所在的结构进行这种排序,或者我应该将Group1交换到索引端? 最佳答案 当按MultiIndex排序时,您需
我有一个包含“A”和“B”列的多索引数据框。有没有办法通过过滤多索引的一列来选择行而不将索引重置为单列索引?例如。#hasmulti-index(A,B)df#canIdothis?Iknowthisdoesn'tworkbecausetheindexismulti-indexsoIneedtospecifyatupledf.ix[df.A==1] 最佳答案 一种方法是使用get_level_values索引方法:In[11]:dfOut[11]:0AB141252363In[12]:df.iloc[df.index.get_lev