Pandas:打印系列中的名称和值

16

当我使用:

w = y.groupby['A'].size()

它会给我列A的列值,以及旁边分组的大小。 使用w(一个Series),我该如何单独打印出分组的名称? 可以通过以下方式获得分组的值:

for i in w :
    print(i)

但我无法弄清如何获取这些名称。

3个回答

17
你可以使用iteritems()来遍历系列。
In [100]: for index, val in w.iteritems():
   .....:     print index, val
   .....:

在这里,index 是列名,而 val 是值/大小。


5

系列的索引成员是“名称”,因此:

for name, val in w.index:
    print name

将遍历名称。对于两者,您可以使用

import itertools

for name, val in itertools.izip(w.index, w):
    print name, val

属性错误:'module'对象没有属性'izip'。 - Meghdeep Ray
根据您使用的Python版本,这可能是“zip”。 - Ami Tavory

2

在Python 3中,以下内容可以正常工作:

In [31]:
df = pd.DataFrame({"A":["a","b","c","a"]})
w = df.groupby('A').size()
w

Out[31]:
A
a    2
b    1
c    1
dtype: int64

In [61]:
for i,r in w.items():
    print(i,r)
​
a 2
b 1
c 1

如同 iterkv 一样:
In [62]:
for i,r in w.iterkv():
    print(i,r)
a 2
b 1
c 1

然而,一种便携的方法(也适用于Python 2)是使用iteritems


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接