您如何遍历从.groupby('...').size()
命令生成的Pandas系列并获取组名和计数。
例如,如果我有:
foo
-1 7
0 85
1 14
2 5
我该如何遍历它们,以使每次迭代我的变量分别为-1和7、0和85、1和14以及2和5?
我尝试了枚举选项,但效果不佳。例子:
for i, row in enumerate(df.groupby(['foo']).size()):
print(i, row)
它不会返回-1、0、1和2,i
而是返回0、1、2、3。
更新:
鉴于熊猫系列:
s = pd.Series([1,2,3,4], index=['a', 'b', 'c', 'd'])
s
#a 1
#b 2
#c 3
#d 4
#dtype: int64
您可以直接遍历它,从而在每次迭代中从序列中得出一个值:
for i in s:
print(i)
1
2
3
4
如果要同时访问索引,则可以使用items
或iteritems
方法,这将生成一个既包含索引又包含值的生成器:
for i, v in s.items():
print('index: ', i, 'value: ', v)
#index: a value: 1
#index: b value: 2
#index: c value: 3
#index: d value: 4
for i, v in s.iteritems():
print('index: ', i, 'value: ', v)
#index: a value: 1
#index: b value: 2
#index: c value: 3
#index: d value: 4
旧答案:
您可以iteritems()
在Series上调用method:
for i, row in df.groupby('a').size().iteritems():
print(i, row)
# 12 4
# 14 2
根据文档:
Series.iteritems()
懒惰地遍历(索引,值)元组
注意:这与问题中的数据不同,只是一个演示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句