0

データフレームから構築されたグループがあり、これが機能しない理由を理解しようとしています。

for i in range(1,12):
  out1=df.ix['group%s'% i]
  out1.to_csv('group%s.csv' % i)
  out1.pl.describe()

group_iの例は次のとおりです。(a、bにはfloatが含まれます)

group1=df["ptdelta"][a & b]
a=df["ptdelta"]>=0
b=df["ptdelta"]<5 

トレースバックはKeyErrorを与えます:group1(最初の試行を意味します)

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-87-11399ea315df> in <module>()
      6 '''
      7 for i in range(1,12):
----> 8   out1=df.ix['group%s'% i]
      9   out1.to_csv('group%s.csv' %i)
     10   out1.pl.describe()

 C:\Python27\lib\site-packages\pandas\core\indexing.pyc in __getitem__(self, key)
     32             return self._getitem_tuple(key)
     33         else:
 ---> 34             return self._getitem_axis(key, axis=0)
     35 
     36     def _get_label(self, label, axis=0):

C:\Python27\lib\site-packages\pandas\core\indexing.pyc in _getitem_axis(self, key, axis)
    343                     return self._get_loc(key, axis=0)
    344 
--> 345             return self._get_label(idx, axis=0)
    346         else:
    347             labels = self.obj._get_axis(axis)
4

1 に答える 1

0

データフレームで有効なインデックスではない文字列値'group'を使用してインデックスを作成しようとしています。リストにすでに複数のグループがあり、各グループが正しいサイズインデックスのシリーズである場合は、次のことを試すことができます。

i = 1
for group in groups:
    out1=df.ix[group]
    out1.to_csv('group%s.csv' % i)
    out1.pl.describe()
    i += 1
于 2013-03-18T20:41:44.840 に答える