使用循环将数据帧输出到csv(Outputting dataframes to csv using a loop)
我有一个从数据框构建的组,并试图理解为什么这不起作用:
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包含浮点数)
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)I have groups constructed from a dataframe & trying to understand why this doesn't work:
for i in range(1,12): out1=df.ix['group%s'% i] out1.to_csv('group%s.csv' % i) out1.pl.describe()An example of a group_i is: (a,b contain floats)
group1=df["ptdelta"][a & b] a=df["ptdelta"]>=0 b=df["ptdelta"]<5The traceback gives KeyError: group1 (meaning the first try)
--------------------------------------------------------------------------- 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)最满意答案
您正尝试使用字符串值“group”进行索引,该值不是数据帧中的有效索引。 如果列表中已有多个组,并且每个组都是具有正确大小索引的系列,则可以尝试:
i = 1 for group in groups: out1=df.ix[group] out1.to_csv('group%s.csv' % i) out1.pl.describe() i += 1You are trying to index with the string value 'group' which is not a valid index in your dataframe. If you have several groups already in a list and each group is a series with the correct size index, you can try:
i = 1 for group in groups: out1=df.ix[group] out1.to_csv('group%s.csv' % i) out1.pl.describe() i += 1更多推荐
发布评论